class Base { public void method() { System.out.println("Base"); } } class Son extends Base { public void method() { System.out.println("Son"); } public void methodB() { System.out.println("SonB"); } } public class Test01 { public static void main(String[] args) { Base base = new Son(); base.method(); base.methodB(); } }
这句new 了一个子类,赋值给父类,所以下面的操作编译器认为base对象就是Base类型的
Base类中不存在methodB()方法,所以编译不通过
要想调用的话需要先通过SON son=(SON)base;强制转换,然后用son.methodB()调用就可以了。
多态编程:编译看左边运行看右边