老师看一下,有问题吗
来源:5-2 编程练习
长情意在夜雨香
2019-08-05 11:38:10
public class Test {
public static void main(String[] args){
//实例化父类对象,并传入两组相同的属性值
Car car1 = new Car("蓝色", "张小胖");
Car car2 = new Car("蓝色", "张小胖");
//调用父类use方法
car1.use();
//通过重写equals方法,比较两个对象是否相等
System.out.println("car1和car2的引用比较:"+car1.equals(car2));
System.out.println("==================================");
//实例化子类Taxi对象,并传入属性值
Taxi taxi = new Taxi("蓝色", "张小泉", "长生");
//调用ride和use方法
System.out.println(taxi.ride());
//输出重写toString后的taxi信息
System.out.println(taxi);
System.out.println("==================================");
//实例化子类HomeCar对象,并传入属性值
HomeCar hc = new HomeCar("紫色", "孙二娘", 7);
//调用display方法及它的重载方法
hc.display();
hc.display(5);
}
}public class Car {
//属性:车的颜色color、车主姓名userName
private String color;//颜色
private String userName;//车主姓名
public Car(){
}
//带参构造函数(参数为color和useName)
public Car(String color, String userName){
setColor(color);
setUserName(userName);
}
//通过封装实现对私有属性的get/set操作
public void setColor(String color){
this.color = color;
}
public String getColor(){
return color;
}
public void setUserName(String userName){
this.userName = userName;
}
public String getUserName(){
return userName;
}
//创建无参无返回值得方法use(描述内容为:我是机动车!)
public void use(){
System.out.println("我是机动车!");
}
//重写equals方法,比较两个对象是否相等(比较color,userName)
public boolean equals(Object one){
Car temp = (Car) one;
if(temp == null)
return false;
if(getColor().equals(temp.getColor()) && getUserName().equals(temp.getUserName()))
return true;
else
return false;
}
}public class Taxi extends Car{
//私有属性:所属公司( company)
private String company;
public Taxi(){
}
//调用父类的构造方法,完成属性赋值
public Taxi(String color, String userName, String company){
super(color, userName);
setCompany(company);
}
//通过封装实现对私有属性的get/set操作
public void setCompany(String company){
this.company = company;
}
public String getCompany(){
return company;
}
//创建不允许重写的ride方法,描述为:**出租车是所属于***公司的。
public final String ride(){
String str =getUserName()+"的出租车是所属于"+getCompany()+"公司的";
return str;
}
//重写父类use方法,描述为:出租车是提高市民生活质量的重要条件之一
public void use(){
System.out.println("出租车是提高市民生活质量的重要条件");
}
//重写toString方法,输出的表现形式不同(输出color,userName)
public String toString(){
String str = "Taxi的信息是:"+getUserName()+"拥有一辆"+getColor()+"的出租车";
return str;
}
}public final class HomeCar extends Car{
//私有属性:载客数(num)
private int num;
public HomeCar(){
}
//带参构造方法为所有属性赋值
public HomeCar(String color, String userName, int num){
setColor(color);
setUserName(userName);
setNum(num);
}
//通过封装实现对私有属性的get/set操作
public void setNum(int num){
this.num = num;
}
public int getNum(){
return num;
}
//创建无参无返回值的display方法,表现为:**拥有的**颜色的私家车,有**座位
public void display(){
System.out.println(getUserName()+"拥有的"+getColor()+"颜色的私家车,有"+getNum()+"座位");
}
//重载display方法(带参数num),描述为:家用汽车大多有**个座位
public void display(int num){
System.out.println("家用汽车大多有"+getNum()+"个座位");
}
}1回答
好帮手慕小班
2019-08-05
同学你好,1、复制运行贴出代码,有如下的运行效果:

上图圈中位置与题目要求不符,原因是在HomeCar类中有参的display方法中,并没有输出传入的参数,而是输出了原本的属性的值,在修改建议如下:

2、运行代码,除了上述的一个小问题,其余代码运行没有问题,也很规范,很棒呐,继续加油!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题