答案在注释中,仔细看 public class Parent{ public void method(){//父类的方法 System.out.println("parent"); } public static void smethod(){//父类的静态方法,静态不会被覆盖,此方法只属于parent Sysyem.out.println("static parent"); } } public class Child extends parent{ public void method(){//子类覆盖父类的方法 System.out.println("child"); } public static void smethod(){//子类静态的方法,静态不会被覆盖,此方法只属于Child Sysyem.out.println("static child"); } } public class test{ public static void print(String [] args){ Child c=new Child();//创建子类对象 Parent p=(Parent)c;//父类引用指向子类对象,即使没有(Parent),也会自动转型,(自动类型提升) p.method();//调用覆盖的方法,看对象的实际类型,为Child p.smethod();//调用Parent的静态方法 } |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |