继承多态习题

4.4 精选习题

一、单项选择题

1.下列程序运行结果是(    )。

private class Base {

    Base() {

        int i = 100;

        System.out.println(i);

    }

}

public class Pri extends Base {

    static int i = 200;

    public static voidmain(String argv[]) {

        Pri p = new Pri();

        System.out.println(i);

    }

}

A.编译错误                     B.200

C.100 200                     D.100

2.下列程序运行结果是(    )。

class Base {

    Base() {

        int i = 100;

        System.out.println(i);

    }

}

public class Pri extendsBase {

    static int i = 200;

    public static void main(String argv[]) {

        Pri p = newPri();

        System.out.println(i);

    }

}

A.编译错误                     B.200

C.100  200                     D.100

3.在Java中,下面描述正确的是(    )。

A.一个子类可以有多个父类,一个父类也可以有多个子类

B.一个子类可以有多个父类,但一个父类只可以有一个子类

C.一个子类只可以有一个父类,但一个父类可以有多个子类

D.上述说法都不对

4.设有文件Derived.java中代码如下:

public class Base extendsObject {

    String objType;

    public Base() {

        objType = "I am a Base type";

    }

}

public class Derived extendsBase {

    public Derived() {

        objType = "I am a Derived type";

    }

    public static void main(String args[]) {

        Derived d = newDerived();

    }

}

编译程序将出现何问题?(    )

A.将创建 Base.class 和 Derived.class 两个文件

B.编译程序将指示第1行有问题

C.编译程序将在第7行出错

D.以上都不对

5.看下列程序

package a;

class Parent {

    private int i = 20;

    protected int j = 30;

    public int k = 40;

    int h = 50;

}

class Child extends Parent {

    void f() {

    }

}

在子类child的方法f()中不可以操作的变量是(    )。

A.i                            B.j

C.k                            D.h

6.看下列程序

package a;

class Parent {

    private int i = 20;

    protected int j = 30;

    public int k = 40;

    int h = 50;

}

class Child extends Parent {

}

class GrandSon extends Child {

    void f() {

    }

}

在子类GrandSon的方法f()中不可以操作的变量是(    )。

A.i                            B.j

C.k                            D.h

7.类的声明如下:

class A {

}

则类A的父类是(    )。

A.没有父类                    B.本身

C.java.lang.Object            D.以上都不对

8.下列程序的运行结果是(    )。

class Parent {

    int i = 20;

    int j = 30;

    void f() {

        System.out.print("" + i);

    }

}

class Child extends Parent {

    int i = 30;

    intk = 40;

    voidf() {

        System.out.print(" " + i);

    }

    voidg() {

        System.out.print("" + k);

    }

    public static void main(String args[]) {

        Parent x = newChild();

        System.out.print(x.i);

        x.f();

        Child x1 = (Child) x;

        System.out.print("" + x1.i);

        x1.f();

    }

}

A.30 30 3030                  B.20 20 20 20

C.20 30 3030                  D.都不对

9.关于重载和重写的叙述正确的是(    )。

A.重载是多态的一种,而重写不是

B.重载是子类中定义的方法和父类中某个方法相同

C.重写是一个类中多个同名的方法,并且方法的参数不同

D.重写方法时不允许降低方法的访问权限

10.哪个选项可以作为以下方法的覆盖方法?(    )

public void add(int a) {…}

A.public void add(int b) {…}

B.void add(int a) {…}

C.public int add(int a) {…}

D.public void add(float a) {…}

11.(    )是在子类中创建一个和父类具有一样特征的方法,特征包括方法名字、参数个数、参数类型和方法返回值类型。

A.覆盖                         B.重载

C.继承                        D.以上都不正确

12.第10行将调用的会是哪个方法?(    )

1.class Person {

2.    public voidprintValue(int i, int j) { }

3.    public voidprintValue(int i) { }

4.}

5.public class Teacher extendsPerson {

6.    public voidprintValue() { }

7.    public voidprintValue(int i) { }

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

9.        Person t = new Teacher();

10.       t.printValue(10);

11.   }

12.}

A.on line 2                    B.on line 3

C.on line 6                    D.on line 7

13.哪种访问组合可放在第2行add前和第6行的add前?(    )

1.class SuperDuper {

2.    void add() { 

3.    }

4.}

5.class Sub extends SuperDuper {

6.    void add() {

7.    }

8.}

A.line 2: public; line 6: private

B.line 2: protected; line 6: private

C.line 2: private; line 6: protected

D.line 2: public; line 6: protected

14.下列程序的运行结果是(    )。

public class Test {

    public static void test() {

        this.print();

    }

    public static void print() {

        System.out.println("Test");

    }

    public static void main(String args[]

  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值