java继承多态方法调用测试

本文通过具体的Java代码示例,详细解析了多态性的概念及其应用。包括不同类之间的方法调用过程,以及如何根据对象的实际类型来决定调用哪个方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package lu.test;
/*
 * a1.show(b):调用的是A中show(A) 
 * a1.show(c)调用的是A中show(A)
 * a1.show(d)调用的是show(D) 正常调用本类方法。
 * a2.show(b)调用A.show(A) 方法show(B)并未被重写故调用的是父类的方法。                                                                                                                                                                                                                                                  
 * a2.show(c) 同上。
 * a2.show(d)将子类对象赋给父类引用,调用的是自父类的方法。
 * b.show(b) 调用自己的方法
 * b.show(c) 调用自己的show(B)
 * b.show(d) 调用继承自父类的方法。*/
class A{  
    public String show(D obj){  
           return ("A and D");  
    }   
    public String show(A obj){  
           return ("A and A");  
    }   
}   
class B extends A{  
    public String show(B obj){  
           return ("B and B");  
    }  
    public String show(A obj){  
           return ("B and A");  
    }   
}  
class C extends B{}   
class D extends B{}  
public class TestRelativeClass {
    public static void main(String arg[]){
    A a1 = new A();  
        A a2 = new B();  
        B b = new B();  
        C c = new C();   
        D d = new D();   
        System.out.println(a1.show(b));  
        System.out.println(a1.show(c));   
        System.out.println(a1.show(d));   
        System.out.println(a2.show(b));   
        System.out.println(a2.show(c));   
        System.out.println(a2.show(d));   
        System.out.println(b.show(b));   
        System.out.println(b.show(c));  
        System.out.println(b.show(d)); 
    }  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值