抽象类和接口习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1. Java语言的类间的继承关系是
A) 多重的B) 单重的C) 线程的D) 不能继承
2. 以下关于Java语言继承的说法正确的是
A)Java中的类可以有多个直接父类B)抽象类不能有子类
C)Java中的接口支持多继承D)最终类可以作为其它类的父类
3. 现有两个类A、B,以下描述中表示B继承自A的是
A) class A extends B B) class B implements A
C) class A implements B D) class B extends A
4. 下列选项中,用于定义接口的关键字是
A)interface B) implements C) abstract D) class
5. 下列选项中,用于实现接口的关键字是
A)interface B) implements C) abstract D) class
二、填空题
1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。
2. 属性的隐藏是指子类重新定义从父类继承来的__________。
3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。
4. Java 仅支持类间的____重继承。
5. 抽象方法只有方法头,没有________。
6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。
7. 接口中所有属性均为_________、_________和________的。
(public、static、final)
三、程序阅读题
1.现有类说明如下,请回答问题:
public class A
{
String str1=" Hello! \t";
String str2=" How are you? ";
public String toString( )
{ return str1+str2; }
}
public class B extends A
{
String str1="\b\b,Bill.";
public String toString( )
{ return super.str1+str1; }
}
问题:
1)类A和类B是什么关系?
2)类A和类B都定义了str1属性和方法toString( ),这种现象分别称为什么?
3)若a是类A的对象,则a.toString( )的返回值是什么?
4)若b是类B的对象,则b.toString( )的返回值是什么?
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++;
}
}
在使用该类时,已使用下面语句生成了该类的对象:
Employee e1,e2;
e1=new Employee("王劲",26,6300);
e2=new Employee("张山",30,3800);
问题:
1),e2.age,e2.wage的值各是什么?
2)生成对象e1、e2后,e1.No值为多少?能否通过类名做前缀引用属性No?
3.阅读程序,回答问题。
public class InheritTest1
{
public static void main (String[] args)
{
A aa;
B bb;
aa=new A( ); bb=new B( );
aa.show( ); bb.show();
}
}
class A
{
int a=1;
double d=2.0;
void show( )
{ System.out.println("Class A: "+"\ta="+a +"\td="+d); }
}
class B extends A
{
float a=3.0f;
String d="Java program.";
int b=4;
void show( )
{
System.out.println("Class A: "+"\ta="+super.a +"\td="+super.d);
super.show( );
System.out.println("Class B: "+"\ta="+a +"\td="+d+"\tb="+b);
}
}
问题:1)这是哪一类java程序?
2)类A和类B是什么关系?(类B是类A的子类)
3)按程序输出的格式写出程序运行后的结果.
4.现有类说明如下,请回答问题:
class A
{
int x=10;
int getA(){return x;}
}
class B extends A