这个涉及到对象的多态性。
父类对象由子类实例化,即是对象的多态性中的一种类型之一:向上转型
父类 父类对象=子类实例
意思就是说:我们是使用子类来实例化对象,而这个对象却是披上了“父类对象”的名称
参考楼上那位的图是不错滴~我觉得挺正确的class A{ public void fun1(){} //定义父类中的fun1方法 public void fun2(){} //定义父类中的fun2方法 } class B extends A{ public void fun1(){} //覆写父类A中的fun1方法 public void fun3(){} //定义子类自己的方法 } public class Test{ public static void main(...){ A a=new B(); a.fun1(); // 可执行 a.fun3(); //无法执行,父类中没有定义fun3方法 } }
还有在以上代码中 :a.fun3(); 无法执行,这就涉及到了对象的多态中的向下转型。书里应该有说道的。
作者:知乎用户
链接:https://www.zhihu.com/question/23433483/answer/24573654
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。