java第七章练习题(多态)

第七章练习题(多态)

 

    1.下列自‘关多态的叙述正确的是哪项?(选两项)

    A.父类的引用指向子类的实例是一种多态

    B. 子类的引用指向子类的实例是一种多态

    c.接口的引用指向实现该接口类的实例是一种多态

    D.抽象类的引用指向抽象类的实例是一种多态

   

    2.Java中方法绑定有哪些形式?(选两项)

    A.编译时刻绑定

    B.运行时刻绑定

    c.静态绑定

    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);

    }

    }

    执行下列代码的结果是哪项?

    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);

    }

    }

 

    执行下列代码的结果是哪项?

    Pencil pen=new RubberPencil();

    pen.write("Hello");

    A.  Write Hello

    B.  Rubber Write Hello

    C.编译错误

    D.运行时抛出异常

   

    9  下列哪些方法是在编译时刻绑定的?(选三项)

    A.静态方法

    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);

    }

    }

    执行下列代码的结果是哪项?

    Pencil  pen=new  Pencil();

    (( RubberPencil) pen).write( "Hello");

    A. Write Hello

    B.  Rubber Write Hello

    c.编译失败

       D.运行时抛出异常//Pencil cannot be cast to RubberPencil

    1 1.现有:

    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 a=new B();

    System.out.println(a.name);

    A.  a

    B.  b

    c.编译失败

    D.运行时抛出异常

    

    13.现有:

    1  Interface F{}

    2  class A implements F{}

    3  class B extends A{}

    4  class C extends B{

    5    public static void main(String[]  args){

    6    B b=new B();

    7    //inSert C0de here

    8    }

    9    }

 

    下列哪行代码插入到第7行,将抛出java.lang.ClassCaseException异常7

    A.   A a=b;

    B.  F f=  (C)b;

    C.  F f=  (A)b;

    D.  B bb=  (B)(A)b;

   

14.现有:

1.  class Guy  {  String greet()  {  return "hi";  }  j

2.  class Cowboy extends Guy  {  String greet()  {  return. "howdy";}}

3.  class  Wrangler  extends  Cowboy  {  String  greet()  {  return  "orch!"; } }

4.

5.  class Greetings2  {

6.   public  static void main (String  []  args)  {

7.     Guy g=new Wrangler();

8.    Guy g2=new Cowboy();

9.     Wrangler w2=new Wrangler();

10.    System. out .print (g.greet()+g2.greet()+w2 .greet());

11.    }

12.  }

    结果是什么?

    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;

 

参考答案

  1AC

  2AB

  3A

  4ABD

  5AB

  6C

  7C

  8B

  9ABC

  10 D

  11 B

  12 A

  13 B

  14 B

  15AEF

你可能感兴趣的:(Java基础,面试)