class Base{}
class Agg extends Base{
public String getFields(){
String name = "Agg";
return name;
}
}
public class Avf{
pulic static void main(String argv[]){
Base a = new Agg();
//here
}
}
A. System.out.println(a.getFields());
B. System.out.println(a.name);
C. System.out.println((Base)a.getFields());
D. System.out.println(((Agg)a).getFields());
答案 D
Base 類要引用 Agg 類的實例需要把 Base 類顯示地轉(zhuǎn)換成 Agg 類,然后調(diào)用 Agg 類中的方法. 如果 a 是 Base 類的一個實例,是不存在這個方法的,必須把 a 轉(zhuǎn)換成 Agg 的一個實例
題目二
class A{
public A(){
System.out.println("A");
}
}
public class B extends A{
public B(){
System.out.println("B");
}
public static void main(String[] args){
A a = new B();
a = new A();
}
}
輸出結(jié)果是 A B A
題目三
class A{
public void print(){
System.out.println("A");
}
}
class B extends A{
public void print(){
System.out.println("B");
}
}
public class Test{
..
B objectB = new B();
objectB.print();
A as = (A) objectB;
as.print();
A asg = objectB;
asg.print();
as = new A();
as.print();
..
}
輸出為 B B B A
題目四
public class Test {
public static void main(String[] args){
Father father = new Father();
Father child = new Child();
System.out.println(father.getName());
System.out.println(child.getName());
}
}
class Father{
public static String getName(){
return "Father";
}
}
class Child extends Father{
public static String getName(){
return "Child";
}
}
輸出是 Father Father 因為這里的方法 getName 是靜態(tài)的. 具體執(zhí)行哪一個,則要看是由哪個類來調(diào)用的.
更多建議: