10.13
子类与父类有一样的方法和字段
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);
}
}
当子类与父类拥有同名方法,调用的方法由对象决定,对象是谁,就调用谁的方法。若子类与父类由相同的字段,子类中的字段会代替或隐藏父类中的字段,若子类方法想访问父类中被隐藏的字段时,需要用super关键字来访问。若子类被当作父类来使用,则通过子类访问的字段是父类的。