练习打卡~请老师检查~
package hierarchyExercise4_4; public class Car { // 属性:车的颜色color、车主姓名userName private String colour; private String userName; // 无参构造方法 public Car() { this(null, null); } // 带参构造函数(参数为color和userName) public Car(String colour, String userName) { this.setColour(colour); this.setUserName(userName); } // 通过封装实现对私有属性的get/set操作 public void setColour(String colour) { this.colour = colour; } public String getColour() { return this.colour; } public void setUserName(String userName) { this.userName = userName; } public String getUserName() { return this.userName; } // 创建无参无返回值得方法use(描述内容为:我是机动车!) public void use() { String str = "我是机动车!"; System.out.println(str); } // 重写equals方法,比较两个对象是否相等(比较color,userName) public boolean equals(Car car) { if (car == null) { return false; } if (this.getColour().equals(car.getColour()) && (this.getUserName().contentEquals(car.getUserName()))) { return true; } else { return false; } } } package hierarchyExercise4_4; public final class HomeCar extends Car { // 私有属性:载客数(num) private int num; // 无参构造方法 public HomeCar() { this(null,null,0); } // 带参构造方法为所有属性赋值 public HomeCar(String colour, String userName, int num) { super(colour,userName); this.setNum(num); } // 通过封装实现对私有属性的get/set操作 public void setNum(int num) { this.num = num; } public int getNum() { return this.num; } // 创建无参无返回值的display方法,表现为:**拥有的**颜色的私家车,有**座位 public void display() { String str = this.getUserName() + "拥有的" + this.getColour() + "颜色的私家车,有" + this.getNum() + "座位"; System.out.println(str); } // 重载display方法(带参数num),描述为:家用汽车大多有**个座位 public void dispaly(int num) { String str = "家用汽车大多有" + num + "个座位"; System.out.println(str); } } package hierarchyExercise4_4; public class Taxi extends Car { // 私有属性:所属公司( company) private String company; // 无参构造方法 public Taxi() { this(null,null,null); } // 调用父类的构造方法,完成属性赋值 public Taxi(String colour, String userName, String company) { super(colour,userName); this.setCompany(company); } // 通过封装实现对私有属性的get/set操作 public void setCompany(String company) { this.company = company; } public String getCompany() { return this.company; } // 创建不允许重写的ride方法,描述为:**出租车是所属于***公司的。 public final String ride() { String str = this.getUserName() + "出租车是所属于" + this.getCompany() + "公司的。"; return str; } // 重写父类use方法,描述为:出租车是提高市民生活质量的重要条件之一 @Override public void use() { String str = "出租车是提高市民生活质量的重要条件之一"; System.out.println(str); } // 重写toString方法,输出的表现形式不同(输出color,userName) public String toString() { String str = "taxi的信息是:" + this.getUserName() + "拥有一辆" + this.getColour() + "的出租车"; return str; } } package hierarchyExercise4_4; public class Test { public static void main(String[] args) { // 实例化父类对象,并传入两组相同的属性值 Car car1 = new Car("蓝色","张小泉"); Car car2 = new Car("蓝色","张小泉"); // 调用父类use方法 car1.use(); // 通过重写equals方法,比较两个对象是否相等 car1.equals(car2); System.out.println("car1和car2的引用比较:" + car1.equals(car2)); System.out.println("=================================="); // 实例化子类Taxi对象,并传入属性值 Taxi taxi = new Taxi("蓝色","张小泉","长生"); // 调用ride和use方法 System.out.println(taxi.ride()); taxi.use(); // 输出重写toString后的taxi信息 System.out.println(taxi.toString()); System.out.println("=================================="); // 实例化子类HomeCar对象,并传入属性值 HomeCar homeCar = new HomeCar("紫色","孙二娘",7); // 调用display方法及它的重载方法 homeCar.display(); homeCar.dispaly(5); } }
14
收起
正在回答
1回答
同学你好,已完成练习,很棒哦~ 继续加油!但还有一个小建议如下:
1、包名所有字母均小写,如hierarchyExercise4_4应改为hierarchyexercise4_4
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
java工程师2020版
- 参与学习 人
- 提交作业 9401 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星