多态性:动态绑定
多态性是指获得多种形态的能力。从OOP的角度来说,这意味着同一个方法名指向不同对象的多个方法。这是通过所谓的动态绑定完成的,一个即将执行的方法类型可以延迟到执行时再确定。
1 public class Test 2 { 3 public static void main(String[] args) 4 { 5 A object = new A(); 6 object.process(); 7 object = new ExtA(); 8 object.process(); 9 } 10 } 11 class A 12 { 13 public void process() 14 { 15 System.out.println("Inside A"); 16 } 17 } 18 class ExtA extends A 19 { 20 public void process() 21 { 22 System.out.println("Inside ExtA"); 23 } 24 } 25 /** 26 * 输出结果为: 27 * Inside A 28 * Inside ExtA 29 */
对于接口:
1 public class Test 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("输出的结果是:"); 6 B object = new ImplB1();//此处声明为B 而不是ImplB1的好处。 7 object.process(); 8 object = new ImplB2(); 9 object.process(); 10 } 11 } 12 interface B 13 { 14 void process(); 15 } 16 class ImplB1 implements B 17 { 18 public void process() 19 { 20 System.out.println("Inside ImplB1"); 21 } 22 } 23 class ImplB2 implements B 24 { 25 public void process() 26 { 27 System.out.println("Inside ImplB2"); 28 } 29 } 30 /** 31 * 输出的结果是: 32 * Inside ImplB1 33 * Inside ImplB2 34 */