老师帮忙看一下

老师帮忙看一下

package com.imooc.exercises;

public class NonMotor {
	private String brand;// 品牌
	private String colour;// 颜色
	private int wheel = 2;// 轮子
	private int chair = 1;// 座椅
	// 无参构造

	public NonMotor() {
	}

	// 双参构造 对品牌、颜色赋值
	public NonMotor(String brand, String colour) {
		this.setBrand(brand);
		this.setColour(colour);
	}

	// 四参构造 对所有属性赋值
	public NonMotor(String brand, String colour, int wheel, int chair) {
		this.setBrand(brand);
		this.setColour(colour);
		this.setWheel(wheel) ;
		this.setChair(chair);
	}

	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}

	public String getColour() {
		return colour;
	}

	public void setColour(String colour) {
		this.colour = colour;
	}

	public int getWheel() {
		return wheel;
	}

	public void setWheel(int wheel) {
		this.wheel = wheel;
	}

	public int getChair() {
		return chair;
	}

	public void setChair(int chair) {
		this.chair = chair;
	}

	// 方法:运行,描述内容为:这是一辆**颜色的,**牌的非机动车,有**个轮子,有**个座椅的非机动车。其中**的数据由属性提供
	public String work() {
		String str = "这是一辆" + getColour() + "颜色的," + getBrand() + "牌的非机动车,有" + getWheel() + "轮子,有" + getChair() + "个座椅";
		return str;
	}

}
===============================
package com.imooc.exercises;

public class Bicycle extends NonMotor  {
 // 在构造方法中调用父类多参构造,完成属性赋值
  public Bicycle(){
	  super("捷安特","黄");
  }
  
// 重写运行方法,描述内容为:这是一辆**颜色的,**牌的自行车。其中**的数据由属性提供
	public String work(){
		String str = "这是一辆"+this.getColour()+"颜色的,"+this.getBrand()+"牌的自行车。";
		return str;
	}    

}
======================
package com.imooc.exercises;

public class ElectricVehicle extends NonMotor{
    // 私有属性:电池品牌
	public String batteryBrand;
    // 公有的get***/set***方法完成属性封装
    public String getBatteryBrand(){
    	return this.batteryBrand;
    }
    public void setBatteryBrand(String batteryBrand){
    	this.batteryBrand=batteryBrand;
    }
	// 重写运行方法,描述内容为:这是一辆使用**牌电池的电动车。其中**的数据由属性提供
	public String work(){
		String str = "这是一辆使用"+getBatteryBrand()+"牌电池的电动车。";
				return str;
	}

}
=====================
package com.imooc.exercises;

public class Tricycle extends NonMotor{
// 在无参构造中实现对轮子属性值进行修改
   public Tricycle(){
	   super.setWheel(3);
   }
   // 重写运行方法,描述内容为:三轮车是一款有**个轮子的非机动车。其中**的数据由属性提供
   public String work(){
	   String str = "三轮车是一款有"+this.getWheel()+"个轮子的非机动车。";
	   return str;
   }
}
==============
package com.imooc.test;
 
import com.imooc.exercises.*;

public class Test {
	public static void main(String[]args){
		
		System.out.print("父类信息测试:");
		NonMotor non = new NonMotor("天宇牌","红",4,2);
		System.out.println(non.work());
		
		System.out.print("自行车类信息测试:");
		Bicycle bic = new Bicycle();
		System.out.println(bic.work());
	
		System.out.print("电动车类信息测试:");
		ElectricVehicle ele = new ElectricVehicle();
		ele.setBatteryBrand("飞鸽");
		System.out.println(ele.work());

		System.out.print("三轮车类信息测试:");
		Tricycle tri = new Tricycle();
		System.out.println(tri.work());
		
		
	}

}


正在回答 回答被采纳积分+1

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

1回答
好帮手慕小班 2019-04-23 18:33:43

同学你好,贴出的代码运行没有问题,还有以下一点优化建议:

http://img1.sycdn.imooc.com//climg/5cbee9700001763f09870570.jpg

当电动车有单独属性时也可以重写构造方法,来完成一次电动车类的全部赋值。

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

  • 提问者 慕粉4132590 #1
    老师这个子类用不到全部属性 也要赋值吗? 还是说子类有一个单独的属性 就要建议把父类全部的值赋上?
    2019-04-23 20:52:49
  • 好帮手慕小班 回复 提问者 慕粉4132590 #2
    同学你好,子类用不到父类的属性无需赋值,这里老师只是给出了一个小建议,防止在之后用到父类属性的时候无法重新赋值。 同学本身的程序也是正确的,写的很棒呢~如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-04-24 10:09:46
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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