记两道很有意思的JavaSE阶段基础题

建议读者在看完代码以后可以先想想自己的答案再看运行答案

第一道题:

关于Java的构造函数中super问题

class Supper {
    int i = 10;
    public Supper() {
        print();
        i = 20;
    }
    public void print() {
        System.out.println("Supper==="+i);
    }
}

class Sub extends Supper {
    int i = 30;
    public Sub() {
        print();
        super.print();
        i = 40;
    }

    public void print() {
        System.out.println("Sub==="+i);
    }
}

public class TestExtends {
    public static void main(String[] args) {
        new Sub();
    }
}

这道题的答案:

第二道题:

关于参数匹配的问题:

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 Testmain {
    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(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、付费专栏及课程。

余额充值