Java继承(下)练习4-4,烦请老师检查并指正~

Java继承(下)练习4-4,烦请老师检查并指正~

父类Car
package com.imooc.object.exercise4_4;

public class Car {
// 属性:车的颜色color、车主姓名userName
private String color;
private String userName;

// 无参构造函数
public Car() {

}
// 带参构造函数(参数为color和userName)
public Car(String color, String userName) {
this.setColor(color);
this.setUserName(userName);
}
// 通过封装实现对私有属性的get/set操作
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}

// 创建无参无返回值得方法use(描述内容为:我是机动车!)
public void use() {
System.out.println("我是机动车!");
}
// 重写equals方法,比较两个对象是否相等(比较color,userName)
public boolean equals(Car obj) {
if(obj == null) {
return false;
}
if((this.getColor().equals(obj.getColor())&&(this.getUserName().equals(obj.getUserName())))){
return true;
}else {
return false;
}
}
}

子类Taxi
package com.imooc.object.exercise4_4;

public class Taxi extends Car{
// 私有属性:所属公司( company)
private String company;
// 无参构造函数
public Taxi() {

}
// 调用父类的构造方法,完成属性赋值
public Taxi(String color, String userName, String company) {
super(color, userName);
this.setCompany(company);
}

// 通过封装实现对私有属性的get/set操作
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
// 创建不允许重写的ride方法,描述为:**出租车是所属于***公司的。
public final String ride() {
String str = this.getUserName() + "出租车是所属于" + this.getCompany() + "公司的。";
return str;
}
// 重写父类use方法,描述为:出租车是提高市民生活质量的重要条件之一
public void use() {
System.out.println("出租车是提高市民生活质量的重要条件之一");
}
// 重写toString方法,输出的表现形式不同(输出color,userName)
@Override
public String toString() {
String str = "Taxi的信息是: " + this.getUserName() + "拥有一辆" + this.getColor() + "的出租车";
return str;
}

}

子类HomeCar
package com.imooc.object.exercise4_4;

public class HomeCar extends Car {
// 私有属性:载客数(num)
private int num;
//无参构造方法
public HomeCar() {

}
// 带参构造方法为所有属性赋值
public HomeCar(String color, String userName, int num) {
super(color, userName);
this.setNum(num);

}
// 通过封装实现对私有属性的get/set操作
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}

// 创建无参无返回值的display方法,表现为:**拥有的**颜色的私家车,有**座位
public void display() {
String str = this.getUserName() + "拥有的" + this.getColor() + "颜色的私家车,有" + this.getNum() + "座位";
System.out.println(str);
}
// 重载display方法(带参数num),描述为:家用汽车大多有**个座位
public void display(int num) {
String str = "家用汽车大多有" + this.getNum() + "个座位";
System.out.println(str);
}
}

测试类TestCar
package com.imooc.object.exercise4_4;

public class TestCar {

public static void main(String[] args) {
// 实例化父类对象,并传入两组相同的属性值
Car c1 = new Car("Yellow", "Mike");
Car c2 = new Car("Yellow", "Mike");
// 调用父类use方法
c1.use();
// 通过重写equals方法,比较两个对象是否相等
System.out.println("car1和car2的引用比较:" + c1.equals(c2));
System.out.println("==================================");
// 实例化子类Taxi对象,并传入属性值
Taxi t = new Taxi("蓝色", "张小泉", "长生");
// 调用ride和use方法
System.out.println(t.ride());
t.use();
// 输出重写toString后的taxi信息
System.out.println(t.toString());
System.out.println("==================================");
// 实例化子类HomeCar对象,并传入属性值
HomeCar hc = new HomeCar("紫色", "孙二娘", 7);
// 调用display方法及它的重载方法
hc.display();
hc.display(5);


}

}

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2021-09-11 09:34:51

同学你好,根据代码运行效果来看,同学有一处错误:

https://img1.sycdn.imooc.com//climg/613c0777090ce35606810436.jpg

在调用有参的display()方法时,应直接将括号里的参数输出,如下:

https://img1.sycdn.imooc.com//climg/613c07b209c34bc606990174.jpg

祝学习愉快~

  • 提问者 Heijyu #1

    好的,谢谢老师!是我粗心了~

    2021-09-11 21:44:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师