最近对将子类对象赋值给父类对象有点心得,想和大家分享一下.但本人水平有限,请各位指正和批评. 言归正传,下面是几个小例子,请大家看一看. 测试一
父类:
| public class Supclass { public void print() { System.out.println("this is 父类print()方法"+"——此时对象"+this.toString()); } } |
子类:
| public class Subclass extends Supclass { public static void main(String[] args) { Supclass sup=new Subclass(); sup.print(); System.out.println("此时对象"+sup.toString()); } } |
结果:this is 父类print()方法——此时对象是Subclass@126b249 此时对象是Subclass@126b249
说明: Supclass sup=new Subclass(); 虽然声明的对象是父类对象,但实际的内存空间是子类对象的。 继承父类的方法public void print()被调用,输出的是子类对象名字解析。 结论:编译时声明的对象是父类对象,但运行时却是子类对象.子类没有重写父类的方法,则此 时的对象调用继承父类的方法。 测试二
父类:
| public class Supclass { public void print() { System.out.println("this is 父类print()方法"+"——此时对象"+this.toString()); } } |
|