首页 > 其他 > 详细

继承中父类子类有相同的变量与方法情况

时间:2015-03-27 08:53:21      阅读:129      评论:0      收藏:0      [点我收藏+]
/*父类和子类之间的关系*/

/*
对于子类父类相同变量与相同方法的问题
相同方法:由于多态及运行时类型的知识知,与其运行时类型有关
相同变量:由编译时类型决定,可以从内存角度考虑,对于Child需要保存两个类型的str,
          一个是Father的,一个是Child的。下面(1)句处由子类向父类隐式转型,会发生
		  内存截断,仅保留了Child继承的Father的public部分,则输出的即是Father的str
*/

class Father
{
	String str = "Father";
	
	public Father()
	{
		this.str = "Father1";
		this.setstr();
	}
	
	public void setstr()//注意次数要为public,否则不会跳到Child的set函数中
	{
		str = "Father2";
	}
}

public class Child extends Father
{
	
	String str;
	
	public Child()
	{
		
	}
	
	public void setstr()
	{
		str = "Child2";//调用Father构造函数时,由于多态,会跳到此函数中,但修改的仍是Child的str值,Father的str未发生改变
	}

	public static void main(String[] args)
	{
		Father a1 = new Child();//(1)
		System.out.println(a1.str);  //输出“Father1”
		System.out.println(((Child)a1).str);//输出“Child2”
	}
	
}

继承中父类子类有相同的变量与方法情况

原文:http://blog.csdn.net/woliuyunyicai/article/details/44657529

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!