class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println("A --> public void fun1(){}") ; } public void fun2(){ this.fun1() ; // 调用fun1()方法 } }; class B extends A{ public void fun1(){ // 此方法被子类覆写了 System.out.println("B --> public void fun1(){}") ; } public void fun3(){ System.out.println("B --> public void fun3(){}") ; } }; public class PolDemo01{ public static void main(String asrgs[]){ A a = new B() ; // 实例化子类对象 a.fun1() ; a.fun2();// 此方法被子类覆写过 a.fun3();// 此处为什么不能调用fun3方法呢??(转型之后是父类对象,无法找到子类中定义的新方法,可是下面a又是B类的实例,这是为什么呀???) System.out.println((a instanceof B) ); // true ,,为什么又是B类的实例呢?不是转化成父类对象了吗?? System.out.println((a instanceof A) ); // true } }; |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |