动手动脑3

运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大!

方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!

package morexiangcheng;

public class ParentChildTest {
public static void main(String[] args) {
Parent parent = new Parent();
parent.printValue();
Child child = new Child();
child.printValue();

parent = child;
parent.printValue();

parent.myValue++;
parent.printValue();

((Child) parent).myValue++;
parent.printValue();

}
}

class Parent {
public int myValue = 100;

public void printValue() {
System.out.println("Parent.printValue(),myValue=" + myValue);
}
}

class Child extends Parent {
public int myValue = 200;

public void printValue() {
System.out.println("Child.printValue(),myValue=" + myValue);
}
}

原文地址:https://www.cnblogs.com/buxiang-Christina/p/13880499.html