Java第五章作业答案 .pdf
习题六
一、问答题
1.接口中能声明变量吗?不能,接口中只能定义抽象方法和常量
2.接口中能定义非抽象方法吗?不能
3.接口中的常量可以不指定初值吗?不能
4.什么叫接口的回调?用实现接口的类创建对象,赋值给该接口声明的接口变量
5.可以在接口中只声明常量,不声明抽象方法吗?可以
6.内部类的外嵌类的成员变量在内部类中有效吗?有效
7.内部类中的方法可以调用外嵌类中的方法吗?内部类可以访问外部类的成员,包括
private成员。外部类虽然不能直接访问内部类的成员,但是可以通过内部类的实例访问内部
类的成员。
8.内部类的类体中可以声明类变量和类方法吗?静态内部类可以定义静态成员,非静态内
部类不能定义静态成员。
9.匿名类一定是内部类吗?一定
二、选择题
1.下列哪个叙述是正确的D
A.一个类最多可以实现两个接口。//一个类可以实现(implements)多个接口,就是Java中多继承现象。
B.如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法。
C.如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法。
//实现某个接
口的类如果不是抽象类,则该类必须实现接口中的所有抽象方法。
D.允许接口中只有一个抽象方法。
2.下列哪一个叙述是正确的?C
A.和接口有关的匿名类可以是抽象类。//匿名内部类不能是抽象类。因为在创建匿名内部类的时候,会
立即创建匿名内部类的对象。
B.和类有关的匿名类还可以额外地实现某个指定的接口。
C.和类有关的匿名类一定是该类的一个非抽象子类。
D.和接口有关的匿名类的类体中可以有static成员变量。//匿名类是一个内部类,类体不可声明
static成员变量和static方法
3.下列接口中标注的(A,B,C,D)中,哪两个是错误的?AB
interfaceTakecare{
protectedvoidspeakHello();//A接口中的方法都是public,不能是protected
publicabstractstaticvoidcry();//B接口中的方法不能用static修饰
intf();//C
abstractfloatg();//D
}
4.将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误。A
A.publicintf(){return100+M;}
B.intf(){return100;}//访问控制权限降低了
C.publicdoublef(){return2.6;}//类型不兼容
D.publicabstractintf();//非抽象类中不能有抽象方法
interfaceCom{
intM=200;
intf();
}
classImpComimplementsCom{
【代码】
1
}
5.下列代码标注的(A,B,C,D)中哪一个是错误的?C
classOutClass{
intm=1;
staticfloatx;//A
classInnerClass{
intm=12;//B
staticfloatn=20.89f;//C非静态内部类不能声明静态成员
InnerClass(){
}
voidf(){
m=100;
}
}
voidc