Java练习:Overriding Vs. Overloading经典笔试题

需要理解Overriding 、 Overloading以及重载匹配算法。

有类层次如图


package OO;
import static tips.Print.pln;//System.out.println
public class Sup{
    public void show(Sup obj)    {pln("Sup/Sup"); }
    public void show(SubSubY obj){pln("Sup/SubSubY"); } 
}

package OO;
import static tips.Print.pln;
public class Sub extends Sup{
    @Override public void show(Sup obj) {pln("Sub/Sup"); } 
    public void show(Sub obj){pln("Sub/Sub"); }    
}

package OO;
public class SubSubX extends Sub{}

package OO;
public class SubSubY extends Sub{}
请给出下面代码的输出:

    public static void main(){
        Sup g1 = new Sup();
        Sup g2 = new Sub();
        Sub f = new Sub();
        SubSubX x = new SubSubX();
        SubSubY y = new SubSubY();

        g1.show(f);
        g1.show(x);
        g1.show(y);        

        g2.show(f);
        g2.show(x);
        g2.show(y);        

        f.show(f);
        f.show(x);
        f.show(y);
    }
答案:

Sup/Sup
Sup/Sup
Sup/SubSubY

Sub/Sup
Sub/Sup
Sup/SubSubY

Sub/Sub
Sub/Sub
Sup/SubSubY



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值