类的继承习题一、选择题1. Java语言的类间的继承关系是( B )。
A) 多重的B) 单重的C) 线程的D) 不能继承2. 以下关于Java语言继承的说法正确的是( C )。
A)Java中的类可以有多个直接父类B)抽象类不能有子类C)Java中的接口支持多继承D)最终类可以作为其它类的父类3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。
A) class A extends B B) class B implements AC) class A implements B D) class B extends A4.A)5.A)6. Java7.A)JavaC)Java8.A) classC) class9. 现有类A) classC) class10.A)11.A)12.A)13. javaA)14.饰符是(A)15.A)16.A)public B) protected C) private D) final17. 下列选项中,表示终极方法的修饰符是:(B)A)interface B) final C) abstract D) implements18. 下列选项中,定义接口MyInterface的语句正确的是:(A)A)interface MyInterface{ } B) implements MyInterface { }C) class MyInterface{ } D) implements interface My{ }19. 如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:void mymethod(int a),则子类方法的定义不合法的是:(C)A)public void mymethod(int a) B) protected void mymethod(int a)C) private void mymethod(int a) D) void mymethod(int a)二、填空题1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。
(隐藏)2. 属性的隐藏是指子类重新定义从父类继承来的__________。
(同名变量或属性)3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。
(参数列表)4. Java 仅支持类间的____重继承。
(单重)5. 抽象方法只有方法头,没有________。
(方法体)6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。
(static(静态); abstract(抽象))7. 接口中所有属性均为_________、_________和________的。
(public、static、final)8. 如果接口中定义了一个方法methodA(),一个属性attA,那么一个类ClassA要实现这个接口的话,就必须实现其中的_______方法。
(methodA())9.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成________的。
(抽象的)10.11. Java12.13.Java14.(public15. Java16. Java(17.public三、1.{}{}问题:1)类A和类B是什么关系?(继承关系)2)类A和类B都定义了str1属性和方法toString( ),这种现象分别称为什么?(属性的隐藏;方法的覆盖)3)若a是类A的对象,则a.toString( )的返回值是什么?(Hello! How are you?)4)若b是类B的对象,则b.toString( )的返回值是什么?(Hello,Bill.)2.现有一个类定义如下,请回答问题:class Employee{String name;int age;double wage;static int No=0;Employee(String a1,int a2,double a3){name=a1; age=a2; wage=a3;No++;}}问题:2)3.{{A}}class A{{}{{super.show( );}}问题:1)这是哪一类java程序?(java应用程序)2)类A和类B是什么关系?(类B是类A的子类)3)按程序输出的格式写出程序运行后的结果.(程序运行结果如下:Class A: a=1 d=2.0Class A: a=1 d=2.0Class A: a=1 d=2.0Class B: a=3.0 d=Java program. b=4 )4.现有类说明如下,请回答问题:class A{int x=10;int getA(){return x;}}class B extends A{int x=100;int getB(){return x;}}问题:1)类B是否能继承类A的属性x?(能)2)若b是类B的对象,则b.getB()的返回值是什么?(100)3)若b是类B的对象,则b.getA()的返回值是什么?(10)5.{{{}问题:(class Aclass B6.{{}{String x="java";public String toString(){ return str+x+" and "+super.x; }}问题:1)类A和类B是什么关系?(类B是类A的子类)2)类A和类B都定义了x属性和方法toString(),这种现象分别称为什么?(属性的隐藏和方法的覆盖)3)若a是类A的对象,则a.toString( )的返回值是什么?(I like: 888)4)若b是类B的对象,则b.toString( )的返回值是什么?(I like: java and 888)7.运行类C的输出结果是什么?class A{public A(){“The default constructor of A is invoked”);}}class B extends A{public B(){}}public class C{{}}8.{}{}{);b2.show();}}答案:class Aclass Bclass Aclass Bclass Bclass Bclass Bclass B四、程序填空题1.下面是一个类的定义,完成程序填空。
(Youwrite this.x=x;)public class Youwrite{int x;_______( ) {x=0;}Youwrite ( int x){ _____; }}2.下面是定义一个接口ITF的程序,完成程序填空。
(interface abstract )public _______ ITF{}3.public{}五、1.体积。
}int findArea(){return length*width;}}class LiFangTi extends JuXing{int height;int findVolume(){return findArea()*height;}}3. 定义一个Person类,它包括的属性有“姓名”和“性别”,为Person类派生出一个子类Student 类,为Student子类添加两个属性年龄和成绩等级(用A,B,C,D,E表示),在子类中打印出学生的姓名、性别、年龄及成绩等级。
class Person{protected String name;protected String sex;Person(String name,String sex){=name;this.sex=sex;}public String toString(){}}}}}de");st2.print();}}4.定义一个类Rectangle代表矩形,其中包括计算面积的方法。
再定义一个它的子类Square代表正方形],其中也包含计算面积的方法。
编写一程序,测试新建子类对象的属性和方法。
class Rectangle{float length;float width;Rectangle(float len,float wh){length=len;width=wh;}float getArea(){return length*width;}}class Square extends Rectangle{float length;Square(float len){super(len,len);length=len;}}}}}1A) class2.A) classB) classC) static3.4.设AA) floatC) A5.设AA) public A a=new A( ); B) public A a=A( );C) A a=new class( ); D) a A;6.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是(C)。
A) public X x1= new Y( ); B) X x1= X ( );C) X x1=new X( ); D) int X x1;7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是(A)。
A) static X x1; B) public X x1=new X(int 123);C) Y x1; D) X x1= X( );8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:_______________________________。
(MyClass obj=new MyClass( );)9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A)。
A) void X(int k ){ i=k; } B) X(int k ){ i=k; }C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; }10. 有一个类A,以下为其构造方法的声明,其中正确的是( A )。
A)public A(int x){...} B)static A(int x){...}C)public a(int x){...} D)void A(int x){...}11. 有一个类A,以下为其构造方法的声明,其中正确的是( B )。
A)void A(int x){...} B)A(int x){...}C)a(int x){...} D)void a(int x){...}12. 设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是( B )。