抽象类和接口习题

本文是一篇关于Java编程中抽象类与接口的习题集,涵盖了多项选择题、简答题和编程题,涉及抽象类、抽象方法、接口的定义、实现、继承等方面的知识。通过这些习题,读者可以深入理解Java中抽象类和接口的概念、特点及其应用场景。
摘要由CSDN通过智能技术生成

5.4 精选习题

一、单项选择题

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

abstract class A {

    void f() {

System.out.print("good");

}

}

class B extends A {

     public voidf() {

         System.out.print("bad");

     }

     publicstatic void main(String[] args) {

         A b = newB();

         b.f();

    }

}

A.good                         B.bad

C.编译错误                     D.以上都不对

2.下列哪个类声明是正确的?(    )

A.abstract finalclass Plant { }

B.abstractprivate Sea() { }

C.protectedprivate number;

D.public abstractclass Car { }

3.下面的代码中正确的是(   )。

A.    class Example {

abstract void g();

}

B.     interface Example {

void g() {

    System.out.print("hello");

}

}

C.     abstract class Example {

abstract voidg() {

    System.out.print("hello");

}

}

D.    abstract class Example {

void g() {

System.out.print("hello");

}

}

4.以下关于abstract的说法,正确的是(    )。

A.abstract只能修饰类

B.abstract只能修饰方法

C.abstract类中必须有abstract方法

D.abstarct方法所在的类必须用abstract修饰

5.下列说法正确的是(    )。

A.final 可修饰类、属性、方法

B.abstract可修饰类、属性、方法

C.定义抽象方法需有方法的返回类型、名称、参数列表和方法体

D.用final修饰的变量,在程序中可对这个变量的值进行更改

6.下列关于修饰符混用的说法错误的是(   )。

A.abstract不能与final同时修饰一个类

B.接口中不可以有private的成员

C.abstract方法必须在abstract类或接口中

D.static方法中能直接处理非static的属性

7.(*)抽象类A和抽象类Test的定义如下:

abstract class A {

    abstract int getInfo() {

    }

}

public class Test extends A {

    private int a = 0;

    public int getInfo() {

        return a;

    }

    public static void main(String args[]) {

        Test b= new Test();

        System.out.println(b.getInfo());

    }

}

关于上述代码说明正确的是(    )。

A.输出结果为0

B.通过编译但没有输出任何结果

C.第5行不能通过编译

D.程序第2行不能通过编译

8.下列有关抽象类与接口的叙述中正确的是(    )。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法

C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法

D.抽象类中的变量定义时必须初始化,而接口中不是

9.下列叙述正确的是(   )。

A.抽象类可以定义为final类,但抽象方法不可以定义为final方法

B.一个类实现了一个接口,那么这个类必须实现该接口的所有方法

C.类可以继承另一个类,但接口不可以继承另一个接口

D.一个类只可以继承另一个类,但可以实现多个接口

10.使用interface声明一个接口时,只可以使用哪个修饰符修饰该接口?(    )

A.private                      B.public

C.protected                    D.static

11.关于接口的定义和实现,以下描述正确的是(   )。

A.接口定义的方法只有定义没有实现      

B.接口定义中的变量都必须写明final和static

C.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用相同代码

D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必声明为public

12.下列关于接口的描述中说法正确的是(    )。

A.接口的实质是一种特殊的抽象类,里面只包含常量和抽象方法

B.一个类最多只能有一个父类,一个接口最多只能有一个父接口

C.一个类最多只能有一个父类,一个类最多只能实现一个接口

D.接口的访问权限分四种:公有、私有、友好、受保护的

13.(*)如果A和B是接口的名字,非抽象类C实现了接口A,则下面的代码中正确的是(    )。

A.A a = newA();

B.A a = newC();

C.class Dimplement A & B {  }

D.class Dextends A {  }

14.下列关于接口的描述中说法错误的是(    )。

A.类所实现的接口中的方法和常量,都可以通过类的对象来调用

B.即便父类实现了某个接口,其子类也必须再次实现该接口,才能继承该接口中的常量和方法

C.当一个类实现一个接口时,可以选择只实现接口中的部分抽象方法

D.接口之间可以通过关键词extends定义继承关系,类和接口之间通过关键词implements定义实现关系

15.关于类继承的说法,正确的是(    )。

A.Java 类允许多重继承

B.Java接口允许多重继承

C.接口和类都允许多重继承

D.接口和类都不允许多重继承

16.(*)以下类或者接口定义中正确的是(    )。

A.publicclass A {

    privateint x;

    publicint getX() {

        returnx;

    }

}

B.publicabstract class A {

private int x;

    publicabstract int getX() {

        returnx;

    }

    publicabstract int aMethod();

}

C.publicclass a {

private int x;

public abstract int getX();

}

D.publicinterface interfaceA {

private int x;

public int getX() {

return x;

}

}

17.下面哪个类实现了接口Usable?(    )

interface Usable {

    int eat(int data);

}

A.class Human implements Usable{

            int use(int a) {

return 1;

}

}

B.class Human extends Usable {

            public int use(int a) {

return 1;

}

}

C.class Human implements Usable{

            public int use(int a) {

return 1;

}

}

D.class Human implements Usable{

            public int use() {

return 1;

}

}

18.public interface Flyable {

float hight = 10;

}

  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值