D、类B的构造函数中包含super()的调用
7、下面(A)情况下,系统会为类A自动产生构造函数? A、class A { }
B、class A { public A() {} } C、class A {
public A(int x) {} }
D、class Z {}
class A extends Z { void A() {} } 二、填空题
1、java中提供了两种用于多态的机制 __重载_______,____覆盖______.
2、this代表了__当前对象_____的引用,super表示的是当前对象的___父类________对象。 3、如果子类中覆盖了父类中的同名方法,则在子类中调用父类中的同名方法是使用关键字_ super ___。在一个类的内部可以直接调用本类的对象,也可以使用关键字__ this ___来调用。
4、子类可以继承父类的_成员变量____和_成员方法___,但是不能继承父类的构造函数。 5、下面代码执行后的结果是__2____? class Super {
public int i = 0;
public Super(String text) { i = 1; } }
public class Sub extends Super {
public Sub(String text) { super(text); i = 2; }
public static void main(String args[]) { Sub sub = new Sub(\ System.out.println(sub.i); } }
6、如果在一个文件中有package,import以及class的定义,请给出三者在文件中的先后顺序。package,import ,class
第5章(2)接口练习题答案 一、选择题
1、定义一个接口必须使用的关键字是( ) A、public B、class C、interface D、static 2、抽象方法:( ) A、可以有方法体
B、可以出现在非抽象类中 C、是没有方法体的方法
D、抽象类中的方法都是抽象方法 3、关于接口哪个正确?( A )
A、实现一个接口必须实现接口的所有方法 B.一个类只能实现一个接口 C.接口间不能有继承关系 D.接口和抽象类是同一回事 二、填空题
1、方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。抽象方法是不能被当前类的子类重新定义的方法。
2、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。
3、接口由两部分组成_____以及______。接口声明接口体
4、接口可以看作是仅容纳___抽象__方法以及___常量_,而又不能直接生成对象的特殊类。 5、用于将一个类修饰为最终类的关键字是___final___。用于声明一个类为抽象类的关键字是__abstract______。
6、abstract不能和___fihal__共同修饰一个类。
7、 java中用____extends_____关键字指明继承关系.用___implements__关键字指明对接口的实现。
8、如果Alpha类继承Beta类,Alpha类被称为_____子__类,Beta类被称为____父___类。 9、子类可以继承父类的_成员变量____和____成员方法,但是不能继承父类的构造函数。 10、下面程序的输出结果是:_______。 class Art {
Art() {System.out.println(\} }
class Drawing extends Art {
Drawing() { super();
System.out.println(\
}
}
public class Cartoon extends Drawing {
Cartoon() { super();
System.out.println(\ public static void main(String[] args) { Cartoon x = new Cartoon(); } }
11、写出以下程序的运行结果____4__。 import java.io.*; public class ATest{
public static void main(String args[]) { SubClass sb = new SubClass( ); System.out.println(sb.fun( )); } }
class SuperClass{ int a =24 , b =5 ; } class SubClass extends SuperClass{
int fun( ) { return a%b; } }
三、多项选择题
1、与第2行等价的定义方式是_____。 1. public interface Foo { 2. int k = 4; 3. }
A. final int k = 4; B. public int k = 4; C. abstract int k = 4; D. volatile int k = 4; E. protected int k = 4;
2、下面几个方法中,_____可以放在接口(interface)中。 A. void methoda();
B. public double methoda();
C. public final double methoda(); D. static void methoda(double d1); E. protected void methoda(double d1);
3、请问如下选项中,_____可以使得以上代码编译没有错误。 1. public abstract class Test {
2. public abstract void methodA(); 3.
4. public abstract void methodB() 5. {
6. System.out.println(“Hello”); 7. } 8. }
A 给methodA加上方法体; B 将第5-7行的代码用“;”代替
C 将类Test前面的修饰符abstract去掉
D 将方法methodA前面的修饰符abstract去掉 E 将方法methodB前面的修饰符abstract去掉
4、下面选项中,_____可以是合法的方法重写的形式。 class BaseClass {
private float x = 0f; protected float getVar() { return x; } }
class SubClass extends BaseClass {
private float x = 0f;
____________________ }
A. float getVar() { return x; }
B. public float getVar() { return x; } C. public double getVar() { return x; } D. protected float getVar() { return x; } E. public float getVar(float f) { return f; } 5、如果有如下这样一段代码 class A { A() { } } class B extends A { }
请在下面项中,正确的说法是:____________ A、类B的构造函数的访问权限是public B、类B的构造函数没有参数
C、类B的构造函数中包含this()方法的调用 D、类B的构造函数中包含super()的调用