Father obj = new Child()是父类指针指向子类对象
-
obj只能访问子类从obj中继承过来的成员方法和成员变量
-
obj不能访问子类本身的成员方法和成员变量
-
obj可以访问子类重写父类的方法
下面是一个例题:
class Father {
int a = 100;
int b = 200;
public void print() {
System.out.println(a + " " + b);
}
}
class Child extends Father {
int b = 300;
int c = 400;
public void print() {
System.out.println(a + " " + b + " " + c);
}
public void printExtend() {
System.out.println(c);
}
}
public class Main {
public static void main(String[] a) {
Father obj = new Child();
System.out.println(obj.a); //100
System.out.println(obj.b); //200
obj.print(); // 100 300 400
obj.printExtend(); // 此处编译错误,因为父类指针不能访问子类自己独有的方法
}
}