4-4编程作业
来源:4-4 编程练习
rock221
2020-12-17 17:01:03
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 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 obj) {
if (obj == null) {
return false;
}
Car one = (Car) obj;
if (one.color.equals(one.getColor()) && one.userName.equals(one.getUserName())) {
return true;
} else
return false;
}
}
public class Taxi extends Car{
//私有属性:所属公司( company)
// 私有属性:所属公司( company)
private String company;
public Taxi() {
}
// 调用父类的构造方法,完成属性赋值
public Taxi(String company) {
super("蓝色", "张小泉");
this.setCompany(company);
}
// 通过封装实现对私有属性的get/set操作
public void setCompany(String company) {
this.company = company;
}
public String getCompany() {
return company;
}
// 创建不允许重写的ride方法,描述为:**出租车是所属于***公司的。
public final void ride() {
System.out.println(this.getUserName() + "出租车是所属于" + this.getCompany() + "公司的。");
}
// 重写父类use方法,描述为:出租车是提高市民生活质量的重要条件之一
@Override
public void use() {
System.out.println("出租车是提高市民生活质量的重要条件之一");
}
// 重写toString方法,输出的表现形式不同(输出color,userName)
public String toString() {
return "taxi的信息是:"+this.getUserName()+"拥有一辆"+this.getColor()+"的出租车";
}
}
public final class HomeCar extends Car{
// 私有属性:载客数(num)
private int num;
public HomeCar() {
}
// 部分赋值,并调用父类有参构造
// public HomeCar(int num) {
// super("紫色","孙二娘");
// this.setNum(num);
// }
// 带参构造方法为所有属性赋值
public HomeCar(String color,String userName,int num) {
this.setColor(color);
this.setUserName(userName);
this.setNum(num);
}
// 通过封装实现对私有属性的get/set操作
public void setNum(int num) {
this.num = num;
}
public int getNum() {
return num;
}
// 创建无参无返回值的display方法,表现为:**拥有的**颜色的私家车,有**座位
public void display() {
System.out.println(this.getUserName() + "拥有的" + this.getColor() + "颜色的私家车,有" + this.getNum() + "座位");
}
// 重载display方法(带参数num),描述为:家用汽车大多有**个座位
public void display(int num) {
System.out.println("家用汽车大多有"+num+"个座位");
}
}
public class Test {
public static void main(String[] args){
//实例化父类对象,并传入两组相同的属性值
Car one=new Car("黄色","张三");
Car two=new Car("黄色","张三");
//调用父类use方法
one.use();
//通过重写equals方法,比较两个对象是否相等
System.out.println("Car和Car的引用比较:"+one.equals(two));
System.out.println("==================================");
//实例化子类Taxi对象,并传入属性值
Taxi three=new Taxi("长生");
//调用ride和use方法
three.ride();
three.use();
//输出重写toString后的taxi信息
System.out.println(three.toString());
System.out.println("==================================");
// 实例化子类HomeCar对象,并传入属性值
// HomeCar four=new HomeCar(7);
HomeCar four = new HomeCar("紫色", "孙二娘", 7);
// four.setColor("紫色");
// four.setUserName("孙二娘");
// 调用display方法及它的重载方法
four.display();
four.display(5);
}
}
打卡
1回答
好帮手慕小脸
2020-12-17
相似问题