java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况
//package 1; class A{ public void test(){ System.out.println("A"); } } class D extends A{ public void test(){ System.out.println("D"); } } class B extends A{ public void test(){ System.out.println("B"); } } public class C extends A{ public static void main(String args[]){ //运用多态将类实例化, C c = new C(); 1A A c =new A(); 2 A A c =new B(); 3B A c =new C(); 4A A c =new D(); 5D c.test(); } } /* 运行结果: 1 A 2, A 3, B 4, A 5 , D */
分析结果:
C c = new C(); 直接将类实例化,这个很简单,没用到多态性
A c =new A(); 直接将类实例化,这个很简单,没用到多态性
A c =new B(); 由于B类是继承的A类,所以在实例化的时候可以使用多态性类实例化,使用基类来实例化子类,由于子类重写了基类中的方法,结果是B
A c =new C(); 由于C类是继承A类,所以在实例化的时候可以使用多态性来实例化,使用基类来实例化子类,由于子类中没有重写基类的方法,结果是A
A c =new D(); 由于D类是继承的A类,所以在实例化的时候可以使用多态性类实例化,使用基类来实例化子类,由于子类重写了基类中的方法,结果是D