一、单项选择题
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;
}