1、下列关于接口的说法,正确的是
A .接口体中包含常量、变量和抽象方法三部分。
B .使用关键字interface来定义一个接口。
C .接口体中所有抽象方法的访问权限一定都是public。
D .接口体中只有抽象的方法,没有普通方法。
答案:BCD
解析:6.1节。A项:接口体中包含常量(没有变量)和抽象方法两部分。
2、接口体中所有的常量的访问权限都是public,而且都是static常量。
A .true
B .false
答案:A
解析:P145。
3、下列关于实现接口的说法,正确的是
A .一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。
B .如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。
C .类重写接口方法时,方法的访问权限一定要明显地用public修饰。
D .子类既可以重写接口中的方法,也可以直接拥有接口中的方法。
答案:ABC
解析:6.2节。D项:只有抽象类才可以直接拥有接口中的方法,否则必须全部重写。
4、下列说法错误的是
A .public接口可以被任何一个类实现。
B .友好接口可以被与该接口在同一包中的类实现。
C .可以通过关键字implements声明一个接口是另一个接口的子接口。
D .子接口将继承父接口中的全部方法和常量。
答案:C
解析:通过关键字extends声明一个接口是另一个接口的子接口。
5、下列说法正确的是
A .UML通过使用实线连接类和它的接口。
B .通过import语句可以引入包中的接口。
C .接口可以调用类中的其他的非接口方法。
D .接口属于引用型变量。
答案:BD
解析:P148-150。A项:虚线。C项:接口无法调用类中的其他的非接口方法。
6、下列关于接口的说法,错误的是
A .接口没有提供构造方法。
B .接口中的方法默认使用public、abstract修饰。
C .接口中的属性默认使用public、static、final修饰。
D .接口不允许多继承。
答案:D
解析:接口可以多继承。
7、接口可以使用new运算符直接产生对象。
A .true
B .false
答案:B
解析:接口不能用new运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。
8、下列说法正确的是
A .一个类最多可以实现两个接口。
B .如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法。
C .如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法。
D .允许接口中只有一个抽象方法。
答案:D
9、下列四个接口中,错误的是
interface Takecare {
protected void speakHello(); //A
public abstract static void cry(); //B
int f(); //C
abstract float g(); //D
}
A .A
B .B
C .C
D .D
答案:AB
10、将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误?
interface Com {
int M = 200;
int f();
}
class ImpCom implements Com {
【代码】
}
A .public int f(){return 100+M;}
B .int f(){return 100;}
C .public double f(){return 2.6;}
D .public abstract int f();
答案:B
11、下列哪个代码替换程序中的【代码】不会导致编译错误?
interface A {
abstract int getNumber();
}
class B implements A{
【代码】
}
A .protected int getNumber() {return 100;}
B .int getNumber() {return 100;}
C .public int getNumber() {return 100;}
D .int getNumber() {return ‘a’+‘b’}
答案:C
12、XX是一个引用型变量,System.out.println(XX)等价于System.out.println(XX.toString()).
A .true
B .false
答案:A
13、接口中 int STOP等价于public static final int STOP.
A .true
B .false
答案:A
14、public void someMethod(int i)和public int someMethod()是方法重载。
A .true
B .false
答案:A
15、如果有以下程序片段:
interface Some{
protected void dosome ();
}
class SomeImpl implements Some {
public void dosome(){
System.out.println("做一些事");
}
}
public class Main{
public static void main (String [] args) {
Some s= new SomeImpl();
s.dosome ();
}
}
以下描述正确的是
A .编译失败
B .显示“做一些事”
C .发生ClassCastException
D .执行时不显示任何信息
答案:A
16、如果有以下程序片段
interface Some{
int x = 10;
}
public class Main{
public static void main (String [] args) {
System.out.println(Some.x);
}
}
以下描述正确的是
A .编译失败
B .显示10
C .必须创建Some实例才能存取x
D .显示0
答案:B
17、如果有以下程序片段
interface Some{
void dosome ();
}
class SomeImpl implements Some {
void dosome(){
System.out.println("做一些事");
}
}
public class Main {
public static void main (String [] args) {
Some s= new SomeImpl();
s.dosome ();
}
}
以下描述正确的是
A .编译失败
B .显示“做一些事”
C .发生ClassCastException
D .执行时不显示任何信息
答案:A
18、如果有以下程序片段
interface Some{
void dosome ();
}
class SomeImpl implements Some {
public void dosome(){
System.out.println("做一些事");
}
}
public class Main {
public static void main (String [] args) {
Some s= new SomeImpl();
s.dosome ();
}
}
以下描述正确的是
A .编译失败
B .显示“做一些事”
C .发生ClassCastException
D .执行时不显示任何信息
答案:B
19、如果有以下程序片段
interface Some{
void dosome ();
}
abstract class AbstractSome implements Some {
public abstract void doSome();
public void doService() {
System.out.println("做一些服务");
}
}
public class FinallyDemo {
public static void main (String [] args) {
AbstractSome s = new AbstractSome();
s.doService();
}
}
以下描述正确的是
A .编译失败
B .显示“做一些服务”
C .发生ClassCastException
D .执行时不显示任何信息
答案:A
20、如果有以下程序片段
interface Some {
protected static final int x = 10;
}
public class Main {
public static void main(String [] args) {
System.out.println("Some.x");
}
}
以下描述正确的是:
A .编译失败
B .显示10
C .必须创建Some实例才能存取x
D .显示0
答案:A
(说明:P是书上页码,详情请看书)