父类对象new子类对象
Animal b = new Dog();
如上,对象b调用属性的时候调用父类属性,将对象b调用方法的时候调用子类的方法。
class Animal{
}
class Dog extends Animal{
}
public class Test4 {
public static void main(String[] args) {
Animal a = new Animal();
Animal b = new Dog();
System.out.println(a instanceof Animal);
System.out.println(a.getClass());
System.out.println(b.getClass());
//先用的子类的方法所以调用的是子类的getClass
System.out.println(a.getClass() .equals(b.getClass()));
}
}
输出结果
由于先调用子类的方法所以,对象b 的类的类型是子类的类类型Dog.