请检查代码,谢谢~

来源:5-2 编程练习

慕少6083615

2020-04-20 16:21:23

public class Test {
    public static void main(String[] args){ 
		//实例化父类对象,并传入两组相同的属性值
        Car car1=new Car("红色","张三");
        Car car2=new Car("红色","张三");
		//调用父类use方法
        car1.use();
		//通过重写equals方法,比较两个对象是否相等
		boolean flag=car1.equals(car2);
        System.out.println("car1和car2的引用比较:"+flag);
		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.display(5);


	}
}
public class Car {
    //属性:车的颜色color、车主姓名userName
	private String color;
	private String userName;
	public Car(){
		
	}
	//带参构造函数(参数为color和useName)
	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 temp=(Car)obj;
	   if(this.getColor().equals(temp.getColor())&&this.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);
        this.setCompany(company);
    }
    //通过封装实现对私有属性的get/set操作
    public void setCompany(String company){
        this.company=company;
    }
    public String getCompany(){
        return company;
    }
	//创建不允许重写的ride方法,描述为:**出租车是所属于***公司的。
	public final String ride(){
	    String str=this.getUserName()+"的出租车是属于"+this.getCompany()+"的";
	    return str;
	}
	//重写父类use方法,描述为:出租车是提高市民生活质量的重要条件之一
	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(String color,String userName,int num){
	    super(color,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()+"颜色的私家车,有"+getNum()+"座位");
	}
	//重载display方法(带参数num),描述为:家用汽车大多有**个座位
	public void display(int num){
	    System.out.println("家用汽车大多有"+num+"个座位");
	}
}


写回答

1回答

好帮手慕小尤

2020-04-20

同学你好,已完成练习,棒棒哒!继续加油!

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

0

0 学习 · 11489 问题

查看课程