Java習題:1

假設類X是類Y的父類,下列聲明對象x的語句中不正確的是( )。
A.X x=new X();
B.X x=new Y();
C.Y x=new Y();
D.Y x=new X();

答案:D

向下轉型操作本身是有前提條件的,必須發生向上轉型後纔可以發生向下轉型。

各個選項的代碼實現:

A

class X{
    public void fun(){
        System.out.println("666");
    }
}
class Y extends X{
    public void fun(){
        System.out.println("2333");
    }
}
public class Test1_1_5_1 {
    public static void main(String args[]){
      X x=new X();	//實例化父類對象
      x.fun();
    }
}
//結果
//666

B

class X{
    public void fun(){
        System.out.println("666");
    }
}
class Y extends X{
    public void fun(){
        System.out.println("2333");
    }
}
public class Test1_1_5_1 {
    public static void main(String args[]){
     X x=new Y();	//實例化子類對象,對象向上轉型
    	x.fun();
    }
}
//結果
//666

C

class X{
    public void fun(){
        System.out.println("666");
    }
}
class Y extends X{
    public void fun(){
        System.out.println("2333");
    }
}
public class Test1_1_5_1 {
    public static void main(String args[]){
       Y x=new Y();	//實例化子類對象
        x.fun();
    }
}
//結果
//2333

D

class X{
    public void fun(){
        System.out.println("666");
    }
}
class Y extends X{
    public void fun(){
        System.out.println("2333");
    }
}
public class Test1_1_5_1 {
    public static void main(String args[]){
      //向下轉型操作本身是有前提條件的,必須發生向上轉型後纔可以發生向下轉型。
      Y x=new X();	//實例化父類對象,向下轉型
    }
}
//結果
//Error:(25, 13) java: 不兼容的類型: X無法轉換爲Y
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章