练习打卡~请老师检查~

练习打卡~请老师检查~

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);
	}
}


正在回答

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

1回答

同学你好,已完成练习,很棒哦~ 继续加油!但还有一个小建议如下:

1、包名所有字母均小写,如hierarchyExercise4_4应改为hierarchyexercise4_4

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • Heijyu 提问者 #1
    好的~谢谢老师~
    2020-05-24 11:27:05
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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