第4章  继承与多态
一.选择题
1. 编译和运行以下两文件结果( D  )
//文件P1.java
package MyPackage;
class P1{
    void afancymethod(){
        System.out.println("What a fancy method");
    }
}
//文件 P2.java
package YourPackage;
import MyPackage.*;
public class P2 extends P1{
    public static void main(String argv[]){
        P2 p2 = new P2();
        p2.afancymethod();
    }
}
A.两个均通过编译,P2运行时输出 What a fancy method
B.没一个通过编译
C.两个均通过编译,但P2运行时出错
D.P1 通过编译,但P2出现编译错误
2.下列程序运行的结果是( A  )。
package a;
package b;
public class D{
public static void main(String args[]) {
      System.out.println("^_^,今天心情不错!");
}
}
A.出现编译错误
B.^_^,今天心情不错!
C.通过编译,运行时出错
D.以上都不对
3.Java的核心类库中哪个包,Java系统能自动引入( B  )。
A.java.io          B.java.lang
C.java          D.java.util
4.下列程序运行结果是(  A )。
private class Base{
    Base(){
        int i = 100;
        System.out.println(i);
    }
}
public class Pri extends Base{
    static int i = 200;
    public static void main(String argv[]){
        Pri p = new Pri();
java重写和重载的区别        System.out.println(i);
    }
}
A编译错误       B200        C100  200         D100
5.下列程序运行结果是( C  )。
class Base{
    Base(){
        int i = 100;
        System.out.println(i);
    }
}
public class Pri extends Base{
    static int i = 200;
    public static void main(String argv[]){
        Pri p = new Pri();
        System.out.println(i);
    }
}
A编译错误         B200     C100  200     D100
6.如何定义一个不能有子类的类Key(  B )。
Aclass Key { }                   B.final class Key { }
C.public class Key { }             Dclass Key {final int i;}
7.哪个选项可以做为以下方法的覆盖方法( A  )。public void add(int a) {…}
Apublic void add(int b) {…}         Bvoid add(int a) {…}
Cpublic int add(int a) {…}          D.public void add(float a) {…}
8.子类构造方法的哪个地方可以调用超类的构造方法( B  )。
  A任何地方
B构造方法的第一条语句
C构造方法的最后一条语句
D不能在子类构造方法中调用超类的构造方法
9.下列程序的运行结果是( C  )。
public class Test {
    public static void test() {
        this.print();
    }
    public static void print() {
        System.out.println("Test");
    }
    public static void main(String args []) {
        test();
    }
}
A输出Test
B.无输出结果
C.类编译错误,指示不能在static上下文中使用this
D.以上都不对
10.设有如下代码:
1. class Example{
2.  String str;
3.  Example(){
4.      str= "example";
5.  }
6.  Example(String s){
7.      str=s;
8.  }
9. }
10. class Demo extends Example{
11. }
12. public class Test{
13.    public void f () {
14.        Example ex = new Example("Good");
15.        Demo d = new Demo("Good");
16.    }
17. }
以下哪行将导致错误(  D )。
  A第3行         B第6行        C第10行    D第15
11.在Java中,如下的修饰符不是访问控制修饰符(  A )
Astatic          Bpublic      Cprotected      Dprivate
12.试完成下述程序片段(  D )。
public class Point{
int x,y;
public  Point(int x,int y){
(  )=x;
(  )=y;
      }
    ...
}
APoint.x  Point.y
B无解
Cx1  y1
Dthis.x this.y
13.在JAVA 中(  C )。
A一个子类可以有多个父类,一个父类也可以有多个子类
B一个子类可以有多个父类,但一个父类只可以有一个子类
C一个子类可以有一个父类,但一个父类可以有多个子类
D上述说法都不对
14.什么是在子类中创建一个和父类具有一样特征的方法特征包括方法名字参数个数参数类型和方法返回值类型( A  )。
A覆盖(overloading)      B重载(overriding)     C继承(inheritance)      Dnone
15.哪个关键词在子类中用来访问与父类中一样的方法( A  )。
Asuper        Bthis       Cstatic      D以上没有
16.哪个关键词用来引用当前类的对象( B  )。
Asuper        Bthis       Cstatic      D以上没有
17.哪个修饰符定义的方法和变量只在定义它们的类中可见,而在其他的任何类中它们都
不可见( C  )。
Aprotected    Bpublic      Cprivate      Dnone of the above
18. 1. class Person {
2.    public void printValue(int i, int j) {//... }
3.    public void printValue(int i){//... }
4. }
5. public class Teacher extends Person {
6.    public void printValue() {//... }
7.    public void printValue(int i) {//...}
8.    public static void main(String args[]){
9.        Person t = new Teacher();
10.        t.printValue(10);
11.     }
12. }
第10行将调用的会是哪个方法( D  )。
Aon line 2          Bon line 3      Con line 6      Don line 7
19.以下代码运行结果是( C  )。
class Base {}
class Sub extends Base {}
class Sub2 extends Base {}
class CEx{
    public static void main(String argv[]){
        Base b = new Base();
        Sub s = (Sub) b;
    }
}
A.编译通过        B编译错误     C运行异常    D.以上都不对
20.设有如下类定义:
class BaseWidget {
      String name="BaseWidget";
      void speak(){
System.out.println("I am a "+name);
}
  } 
class TypeAWidget extends BaseWidget{
      TypeAWidget(){
name="TypeA";
}
  }
以下哪段代码将正确编译和执行( B  )。
AObject a=new BaseWidget();  a.speak();
BBaseWidget b=new TypeAWidget(); b.speak();
CTypeAWidget c=new BaseWidget(); c.speak();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。