对于向上造型,很早就接触了,但是今天突然想起一个问题,就写了一个测试类,发现自己理解的还不够全面。
直接上代码:
public class A{
public void b(){
System.out.println("a.b");
}
}
class B extends A{
public void c(){
System.out.println("b.b");
}
public static void main(String[] args) {
A b = new B();
b.b();
b.c(); // 报错
}
}
发现,如果在子类中有某个方法,但是父类中没有。使用向上造型时候,当对象调用父类中没有的对象时候,就会报错。
正确做法是:使用向上造型的方法需要实现重写。