程序结果截图;
上述程序运行结果判断:
Parent.printValue(),myValue=100
Child.printValue(),myValue=200
Child.printValue(),myValue=200
Child.printValue(),myValue=200
Child.printValue(),myValue=201
解释:
第一二行为正常的输出;
第三行因为parent指向Son类型的对象,所以调用子类方法;
因为parent.myValue++调用的为Father类的变量,所以第四行调用子类的方法;
((Child)parent).myValue++调用的为子类的变量所以第五行调用的为子类的方法,变量值为201;
特点:
当父类变量引用一个子类对象时,调用的实例方法为子类的方法,调用的类方法为父类的方法;调用的变量为父类的变量
转载于:https://www.cnblogs.com/china-xyh/p/7816801.html
相关资源:JAVA上百实例源码以及开源项目