java沿袭笔记-父类应用指向子类对象
java继承笔记-父类应用指向子类对象
java中父类引用指向子类对象时,子类能调用父类方法,也可以重写父类方法。但是,子类无法调用自己的属性。
例如:
class A{ int i=0; void go(){ } } class B extends A{ int i =1; void go(){ System.out.print("重写父类方法"); } public static void main(String args[]){ A te = new B(); System.out.print(te.i); } }
你觉得输出是“0”,还是“1”,结果是“0”,因为子类无法调用子类自己的属性,只能调用父类的属性,而父类的i=0。
这个时候就让我怀疑了java中继承的价值,子类竟然不能有自己个性的属性值,那是不是太过蛋疼了。当然是有解决方法的,代码如下:
class A{ int i=0; void go(){ } } class B extends A{ public B(){ //在B初始化的时候改变i的值 i=1; } void go(){ System.out.print("重写父类方法"); } public static void main(String args[]){ A te = new B(); System.out.print(te.i); //这时候打印的值就是“1”了 } }
虽然是个很简单的例子,但是让我对java的继承有了更深刻的了解,仅以此记载。