java练习题继承

一.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(p.name); } }

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(this.name); } }

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4