JAVA基础(55)---多态经典案例

版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/84142912
class A { 
	private int a = 10;
    public String show(D obj) {  //
        System.out.println(a);
    	return ("A and D");  
    }  
    
    public String show(A obj) {  
        return ("A and A");  
    }   
  
}  
  
class B extends A{  //
    public String show(B obj){ //B类中特有的方法 
        return ("B and B");  
    }   
    @Override
    public String show(A obj){ //对类A 中的方法的重写 
        return ("B and A");  
    }   
}  
  
 class C extends B{  
  
}  
  
 class D extends B{  
  
}  
  
public class Test {  
    public static void main(String[] args) {  
        A a1 = new A();  
        A a2 = new B();  
        B b = new B();  
        C c = new C();  
        D d = new D();  
          
        System.out.println("1--" + a1.show(b));  //1--A and A
        System.out.println("2--" + a1.show(c));  //2--A  and A 
        System.out.println("3--" + a1.show(d));  //3-- A and D
        System.out.println("4--" + a2.show(b));  //4-- B and A
        System.out.println("5--" + a2.show(c));  //5-- B and A
        System.out.println("6--" + a2.show(d));  //6-- A and D
        System.out.println("7--" + b.show(b));   //7-- B and B
        System.out.println("8--" + b.show(c));   //8-- B and B
        System.out.println("9--" + b.show(d));   //9-- A and D   
    }  
}  

猜你喜欢

转载自blog.csdn.net/yj201711/article/details/84142912