在2-23编程里使用super
父类:
public class NonMotor {
// 私有属性:品牌、颜色、轮子(默认2个)、座椅(默认 1个)
private String brand;
private String color;
private int wheel;
private int chair;
// 无参构造方法
public NonMotor() {
}
// 双参构造方法,完成对品牌和颜色的赋值
public NonMotor(String brand, String color) {
this.setBrand(brand);
this.setColor(color);
}
// 公有的get***/set***方法完成属性封装
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return this.brand;
}
public void setColor(String color) {
this.color = color;
}
public String getColor() {
return this.color;
}
}
子类:
public class Bicycle extends NonMotor {
// 在构造方法中调用父类多参构造,完成属性赋值
public Bicycle() {
}
public Bicycle(String color, String brand) {
super(brand, color);
}
// 运行方法,描述内容为:这是一辆**颜色的,**牌的自行车。
public String info() {
String str = "这是一辆" + super.getColor() + "颜色的," + super.getBrand() + "牌的自行车。";
return str;
}
}
测试类;
public class Test {
public static void main(String[] args) {
NonMotor one = new NonMotor("天宇", "红",);
Bicycle two = new Bicycle("黄", "捷安特");
System.out.println("自行车类信息测试:" + two.info());
老师,我在这里贴了一部分代码,运行上应该没有问题,足够说明我的问题即可。
在子类介绍信息的方法info里,对于信息介绍的写法:
String str = "这是一辆" + super.getColor() + "颜色的," + super.getBrand() + "牌的自行车。";
我的疑问在super.getColocr()和super.getBrand()上,以往我一直使用this去调用父类方法,但在此处,我使用了super,以我的理解,this代表调用info方法的当前对象,说白了就是two.getColor()、two.getBrand()。super是调用父类方法,它不像this指代调用方法的当前对象,谁知道是哪个对象调用的super,老师,我困惑在这里。
正在回答
同学,你好!你先看看我在这个问答下的回复,
http://class.imooc.com/course/qadetail/113362
如果还有问题,你在现在这个问答下再提问。
另外,你这里不要用super去调用get方法,用this调用。要分清this和super的使用场景。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星