黑猴子的家:Java SE 練習題第七章

尾部都有答案

第七章練習題(多態(tài))

(1)下列自‘關多態(tài)的敘述正確的是哪項?(選兩項)
A. 父類的引用指向子類的實例是一種多態(tài)
B. 子類的引用指向子類的實例是一種多態(tài)
C. 接口的引用指向實現該接口類的實例是一種多態(tài)
D. 抽象類的引用指向抽象類的實例是一種多態(tài)
(2)Java中方法綁定有哪些形式?(選兩項)
A. 編譯時刻綁定
B. 運行時刻綁定
C. 靜態(tài)綁定
D. 私有綁定
(3)表達式"hello" instance of String返回的值是哪項?
A. true
B. false
C. 1
D. 0
(4)求平方根方法public static double sqrt (double a)可以傳遞的參數 類型有哪些?(選三項)
A. byte
B. float
C. String
D. long
(5)涉及類MyClass的方法簽名足public void find(MyClass a),那么該方法可接收的實際參數的類型可以是哪些?(選兩項)
A. MyClass類的類型
B. MyClass子類的類型
C. Object類型
D.所有接口
(6)使用下列哪些關鍵字可以判定實參的具體類型?
A. as
B. is
C. instanceof    
D. extends
(7)現有
Class Pencil  {
    public void write (String content){
        System.out.println ("Write"+content);
    }
}
Class RubberPencil extends Pencil{
    public void erase (String content){
        System.out.println ("Erase"+content);
    }
}

執(zhí)行下列代碼的結果是哪項?
Pencil pen=new RubberPencil();
pen.write ("Hello");
pen.erase ("Hello");

A. Write Hello
   Erase Hello
B. Erase Hello
   Write Hello
C. 編譯錯誤
D. 運行時拋出異常
(8)現有
Class Pencil  {
    public void write (String content){
        System.out.println ("Write"+content);
    }
}
Class RubberPencil extends Pencil{
    public void write (String content){
        System.out.println ("Rubber Write"+content);
    }
    public void erase (String content){
        System.out.println ("Erase "+content);
    }
} 

執(zhí)行下列代碼的結果是哪項?
Pencil pen=new RubberPencil();
pen.write("Hello");

A. Write Hello
B. Rubber Write Hello
C. 編譯錯誤
D. 運行時拋出異常
(9)下列哪些方法是在編譯時刻綁定的?(選三項)
A.靜態(tài)方法
B. private方法
C.final方法
D.非private方法
(10)現有
Class Pencil  {
    public void write (String content){
        System.out.println( "Write",+content){
    }
}

Class RubberPencil extends Pencil{
    public void write (String content){
        System.out.println("Rubber Write"+content);
    }
    public void erase (String content){
        System.out.println( "Erase "+content);
    }
}

執(zhí)行下列代碼的結果是哪項?
Pencil pen=new Pencil();
(( RubberPencil) pen).write( "Hello");

A. Write Hello
B. Rubber Write Hello
C. 編譯失敗
D. 運行時拋出異常
(11)現有
Class TestA  {
    public void start()  {  System.out.println("TestA");  }
}

public class TestB extends TestA  {
    public void start()  {  System.out.println("TestB");  }
    public static v.id main(string[]  args)  (
        ((TestA)new TestB()).start();
    }
}

運行結果是哪項?

A. TeStA
B. TeStB
C. 編譯失敗
D. 運行時拋出異常
(12)現有
Class A  {public String name="a"}
Class B extends A {public String name="b"}
a = new B();
System.out.println(a.name);

執(zhí)行如上代碼后的結果是哪項?

A. a
B. b
C. 編譯失敗
D. 運行時拋出異常
(13)現有
Interface F {}
class A implements F {}
class B extends A {}
class C extends B {
    public static void main(String[]  args){
        B b=new B();
        //inSert C0de here
    }
} 

下列哪行代碼插入到第7行,將拋出java.lang.ClassCaseException異常?

A. A a=b;
B. F f = (C)b;
C. F f = (A)b;
D. B bb = (B)(A)b;
(14)現有
class Guy  {  String greet()  {  return "hi";  }  }
class Cowboy extends Guy  {  String greet()  {  return. "howdy";}}
class  Wrangler  extends  Cowboy  {  String  greet()  {  return  "orch!"; } }
class Greetings2  {
    public  static void main (String  []  args)  {
        Guy g=new Wrangler();
        Guy g2=new Cowboy();
        Wrangler w2=new Wrangler();
        System. out .print (g.greet()+g2.greet()+w2 .greet());
    }
}

結果是什么?

A. hi hi ouch!
B. ouch!  howdy  ouch!
C. hi howdy ouch!
D. 編譯失敗
E. 運行的咐候有異常拋出
(15)現有
Class ClassA  {}
Class ClassB extends ClassA  {)
Class ClassC extends ClassA  {)
//以及
ClassA p0 = new ClassA();
ClassB pl = new ClassB();
ClassC p2 = new ClassC();
ClassA p3 = new ClassB();
ClassA p4 = new ClassC(); 

下列哪些是正確的?(選三項)

A. p0=pl;
B. p1 =p2;
C. p2=p4;
D. p2 = (ClassC)pl;
E. p1 = (ClassB)p3;
F. p2 =  (Classc)p4; 

參考答案

1、AC
2、AB
3、A
4、ABD
5、AB
6、C
7、C
8、B
9、ABC
10、D
11、B
12、A
13、B
14、B
15、AEF 
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容