java练习题-继承
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.extends和super的使用和方法的重写
1.定义一个人的类(属性有名字,年龄。写一个能输出各个属性值
的方法showInfo()),定义一个学生类(属性有性别),学生继承人类
要求:(1)父类的属性赋值用构造方法来实现(分别用有参数构造方法和无参数构造方法实现)
(2)子类的属性也用构造方法来赋值。
(3)在子类中重写父类的showInfo()方法
(4)声明学生类的对象,调用学生的显示信息的方法。
2
定义Animal父类,含有属性name,sex,age,方法sleep,run,编写一个子类Person,继承Animal类,然后调用父类的属性和方法二.
1、试编写三个具有继承关系的类,A、B、C(B继承A,C继承B)。
要求A中包含方法a1()、a2(),B类中的方法b1()访问了a1()
和a2(),C类中的方法c1()访问了a1()、a2()、b1()。
提示:(a1(),a2(),b1(),c1()这些方法体除了实现题目要求之外,其余内容可以任意编写。)
2、请编码实现动物世界的继承关系:
动物(Animal)具有行为:吃(eat)、睡觉(sleep)
动物包括:兔子(Rabbit),老虎(Tiger)
这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡
觉的行为是一致的。
请通过继承实现以上需求,并编写测试类AnimalTest进行测试。3、父类Person 包含like()方法子类Son 重写父类方法并打印输出
4、(选做)父类Employee 属性:name、sex ,带一个构造方法Employee(String n, char s)
子类Worker继承自Employee 属性:char category;//类别boolean dressAllowance; //是否提供服装津贴,有一个构造方法负责构造所有属性,还有一个自定义方法isDressAll() 这个方法负责通过判断dressAllowance的值输出,是否提供服装津贴。
新建一个类测试类InheDemo
在main方法中新建一个Worker对象,输出这个对象的所有属性并调用isDressAll()方法得到津贴信息
选择题(共50题,每题1.5分,共75分。多选题选不全或选错都不得分。)
1.以下属于面向对象的特征的是(C,D)。(两项)
A) 重载
B) 重写
C) 封装
D) 继承
2.以下代码运行输出是(C)
public class Person{
private String name=”Person”;
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println();
}
}
A) 输出:Person
B) 没有输出
C) 编译出错
D) 运行出错
3.在使用super 和this关键字时,以下描述正确的是(A)
A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B) super()和this()不一定要放在构造方法内第一行
C) this()和super()可以同时出现在一个构造函数中
D) this()和super()可以在static环境中使用,包括static方法和static语句块
4.以下对封装的描述正确的是(D)
A) 只能对一个类中的方法进行封装,不能对属性进行封装
B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用
C) 封装的意义不大,因此在编码时尽量不要使用
D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
5.以下对继承的描述错误的是(A)
A) Java中的继承允许一个子类继承多个父类
B) 父类更具有通用性,子类更具体
C) Java中的继承存在着传递性
D) 当实例化子类时会递归调用父类中的构造方法
6.以下程序的运行结果是(D)
class Person{
public Person(){
System.out.println(“this is a Person”);
}
}
public class Teacher extends Person{
private String name=”tom”;
public Teacher(){
System.out.println(“this is a teacher”);
super();
}
public static void main(String[] args){
Teacher teacher = new Teacher();
System.out.println();
}
}
A) this is a Person
this is a teacher
tom
B) this is a teacher
this is a Person
tom
C) 运行出错
D) 编译有两处错误
7.以下说法错误的是()
A) super.方法()可以调用父类的所有非私有方法
B) super()可以调用父类的所有非私有构造函数
C) super.属性可以调用父类的所有非私有属性
D) this和super关键字可以出现在同一个构造函数中
8.以下关于final关键字说法错误的是(A,C)(两项)
A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
B) final修饰的类肯定不能被继承
C) final修饰的方法不能被重载
D) final修饰的变量不允许被再次赋值
9.访问修饰符作用范围由大到小是(D)
A) private-default-protected-public
B) public-default-protected-private
C) private-protected-default-public
D) public-protected-default-private
10.以下(D)不是Object类的方法
A) clone()
B) finalize()
C) toString()
D) hasNext()
11.多态的表现形式有(A)
A) 重写
B) 抽象
C) 继承
D) 封装
12.以下对重载描述错误的是(B)
A) 方法重载只能发生在一个类的内部
B) 构造方法不能重载
C) 重载要求方法名相同,参数列表不同
D) 方法的返回值类型不是区分方法重载的条件