Java继承练习
练习
⼀、选择
1、在Java中,以下程序的输出结果是A
A. Super–>print
B. Test–>print
C. Super–>print
Test–>print
D. 编译错误
2、在Java中,以下关于⽅法重载和⽅法重写描述正确的是D
A. ⽅法重载和⽅法重写实现的功能相同
B. ⽅法重载出现在⽗⼦关系中,⽅法重写是在同⼀类中
C. ⽅法重载的返回类型必须⼀致,参数项必须不同
D. ⽅法重写需要出现在满⾜继承关系的⼦类中
3、哪个选项中的⽅法插⼊到(1)处可以正确实现⽅法重写C
A. public static void bark(){}
B. public final void display(){}
C. public void eat(String food){}
D. public boolean eat(String food){}
4、在下⾯程序的注释1处补充上下列()⽅法,会导致在编译过程中发⽣错误
A. public float getNum() { return 4.0f; }
B. private float getNum() {return 4.0f;}
C. public void getNum(double d){}
D. public double getNum(float d){ return 4.0f; }
5、如下Java源⽂件,编译并运⾏Child.java后,以下结果描述正确的是B
A. 编译错误:没有到构造器Child()
B. 编译错误:没有到构造器Parent1()
C. 正确运⾏,没有输出值
D. 正确运⾏,输出结果为:parent2
6、分析如下所⽰的Java代码,则选项中的说法正确的是C
A. 第2⾏错误,Test类的构造函数中参数名称应与其⽗类构造函数中的参数名相同
B. 第3⾏错误,应使⽤super关键字调⽤⽗类的name属性,改为super.name=“hello”
C. 第4⾏错误,调⽤⽗类构造⽅法的语句必须放在⼦类构造⽅法中的第⼀⾏
D. 程序编译通过,⽆错误
7、关于super的说法正确的是C
A. 是指当前⼦类的对象
B. 是指当前类的对象
C. 是指当前⽗类的对象
D. 可以⽤在main()⽅法中
8、阅读下⾯JAVA代码⽚段,正确的选项是B
A. 第1⾏编译错误,但能输出正确结果
B. 第2⾏编译错误,但能输出正确结果
C. 第3⾏编译错误,不能输出正确结果
D. 第4⾏编译错误,不能输出正确结果
9、下列关于super和this的说法正确的是(多选)ABD
A. this关键字通常指当前对象
B. super关键字则指⽗类对象
C. 在⼀个类中this只可以调⽤当前类中公有属性和⽅法
D. 在⼀个类中super可以调⽤⽗类中允许被访问的属性和⽅法
10、下列关于Object类的叙述错误的是D
A. Object类是所有类的⽗类
B. 所有类都可以继承Object中允许被继承的⽅法
C. ⼀个类没有使⽤extends关键字明确标识继承关系,则默认继承Object类
D. 要想继承Object类,必须使⽤extends关键字标识继承关系,否则不会实现继承
11、该段代码的运⾏结果为D
A. true
B. 相等
C. 不相等
D. false
12、在Java中,关于继承的说法错误的是C
A. 使⽤extends关键字实现⼀个类继承另⼀个类
B. 所有的Java类都直接或间接地继承了java.lang.Object类
C. 在⼦类的构造⽅法中,必须显式调⽤⽗类的构造⽅法
D. 在⼦类的构造⽅法中,可以通过super关键字调⽤⽗类的构造⽅法
13、下列关于final的说法错误的是C
A. final修饰的变量值不允许被修改
B. final修饰的⽅法不可被重写
C. final可以修饰所有⽅法
D. final不可以修饰构造⽅法
⼆、编程
1、编程练习:某公司要开发“XX车⾏管理系统”,请使⽤⾯向对象的思想,设计⾃定义类描述⾃⾏车、电动车和三轮车。程序参考运⾏效果图如下:
任务
任务分析;
第⼀步:分析⾃⾏车、电动车和三轮车的共性:
1、都是⾮机动车,具有⾮机动车的基本特征
2、都有运⾏的⽅法
第⼆步:根据共性,定义⾮机动车
属性:品牌、颜⾊、轮⼦(默认2个)、座椅(默认 1个)
⽅法:
1. 编写⽆参构造⽅法、双参构造⽅法和四参构造⽅法,其中,在双参构造⽅法中,完成对品牌和颜⾊的赋值;在四参构造⽅法中,完成
对所有属性的赋值
2. 编写运⾏的⽅法,描述内容为:这是⼀辆颜⾊的,牌的⾮机动车,有个轮⼦,有个座椅的⾮机动车。其中**的数据由属性提供
第三步:定义⾃⾏车、电动车和三轮车分别继承⾃⾏车类,要求:
⾃⾏车类:
1、在构造⽅法中调⽤⽗类多参构造,完成属性赋值
2、重写运⾏⽅法,描述内容为:这是⼀辆颜⾊的,牌的⾃⾏车。其中的数据由属性提供
java的tostring方法电动车:
1、增加“电池品牌”属性
2、重写运⾏⽅法,描述内容为:这是⼀辆使⽤牌电池的电动车。其中的数据由属性提供
三轮车:
1、在⽆参构造中实现对轮⼦属性值进⾏修改
2、重写运⾏⽅法,描述内容为:三轮车是⼀款有个轮⼦的⾮机动车。其中**的数据由属性提供
⾮机动车类:
package com.dodoke.car.fatherclass;
public class NonMotor {
// 私有属性:品牌、颜⾊、轮⼦(默认2个)、座椅(默认 1个)
private String name;
private String color;
private int lunzi=2;
private int seat=1;
// ⽆参构造⽅法
public NonMotor() {
}
// 双参构造⽅法,完成对品牌和颜⾊的赋值
public NonMotor(String name,String color) {
this.name=name;
}
// 四参构造⽅法,分别对所有属性赋值
public NonMotor(String name,String color,int lunzi,int seat) {
this.name=name;
this.lunzi=lunzi;
this.seat=seat;
}
// 公有的get/set⽅法完成属性封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论