1 package hadoop; 2 3 public class Test { 4 5 public static void main(String[] args) { 6 //多态,编译时看左边(下面变量s左边Super这个类),意思是首先看父类的有哪些方法,运行时看右边(Sub), 7 //意思是s只能点出子类重写过父类的方法或者父类的所有方法,也就是模板在父类那,你必须按模板来实现,子类自己独有的是点出不的 8 9 //例子1 10 Super s=new Sub(); 11 s.print(3); //输出的是 Sub:::3,因为父类有这个方法,子类也重写了这个方法,输出的是子类那边的 12 s.printSuper(3);//输出的是 printSuper:::3,可以实现父类的方法 13 //可发现s.printSub点不出来 14 15 //例子2 16 Sub s1=new Sub();//和(sub)s.xxx一样的,这边上下两个例子看着清楚 17 s1.print(3);//输出的是 Sub:::3 18 s1.printSub(3);//输出的是 printSub:::3 19 s1.printSuper(3);//输出的是 printSuper:::3,sub是super的子类,当然可以点出 20 21 22 //ps:多态有啥用?去看看设计模式的简单工厂模式的例子 23 } 24 25 } 26 class Super{ 27 public void print(int i){ 28 System.out.println("Super:::"+i); 29 } 30 public void printSuper(int i){ 31 System.out.println("printSuper:::"+i); 32 } 33 } 34 class Sub extends Super{ 35 public void print(int j){ 36 System.out.println("Sub:::"+j); 37 } 38 public void printSub(int j){ 39 System.out.println("printSub:::"+j); 40 } 41 }
原文:https://www.cnblogs.com/fafafa123/p/12582774.html