建议读者在看完代码以后可以先想想自己的答案再看运行答案
第一道题:
关于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));
}
}
这道题的运行结果:
关于答案的解析和思考,等我下一次再做吧,嘻嘻>_<