为了账号安全,请及时绑定邮箱和手机立即绑定

关于多态课后习题

大家谁完成率本节作业题?我都没搞懂意思,借鉴一下,谢谢

正在回答

4 回答

建立一个父类,让子类继承其所有方法,获取车名,获取载客量,车辆租用量数,总金额等等
package class_car;

public class Car {

	private String carName;
	private int carryCapacity;
	private int cargoCapacity;
	private int perMoney;
	private int perMoney;
	private	int num;
	
	public int getNum() {
		return num;
	}

	public void setNum(int _num) {
		num += _num;
	}
	
	public String getCarName() {
		return carName;
	}
	
	public int getCarryCapacity() {
		return carryCapacity;
	}
	
	public int getCargoCapacity() {
		return cargoCapacity;
	}
	
	public int getPerMoney() {
		return perMoney;
	}
	
}

子类方法继承,私有对象名字和每辆车的载客数载人数每辆车都用构造函数(构造方法)初始化,其余的不用初始化
例如
package class_car;

public class AodiA4 extends Car {
	public AodiA4(){
		carName = "奥迪";
		carryCapacity = 4;
		perMoney = 500;
		cargoCapacity = 0;
		num = 0;
		moneyAll = 0;
	}
	
	private String carName;
	private	int carryCapacity,
		perMoney, cargoCapacity;
	private int num, moneyAll;
}

剩下的 main 函数里  调用选择函数和打印总价函数

对象编号123456 可以用建立对象数组的方法分别为 012345  不用过说了吧

0 回复 有任何疑惑可以回复我~

好像明白了,就是接收Initial中的对象参数Car,AirPlane ,Boat ,前面加的Traffic, 意思是把a声明为Traffic类对对象a的引用,是不是这样呢?

0 回复 有任何疑惑可以回复我~

创建父类Traffic.java

package com.traffic;

public class Traffic {
	String name = "Traffic";
	private int passengerCapacity;
	//Encapsulate passengerCapacity, just for test :D
	public int getPC(){
		return passengerCapacity;
	}
	public void setPC(int newPC){
		passengerCapacity = newPC;
	}
	/**
	 * @param a
	 */
	public void whoAmI(Traffic a){
		System.out.println(name + " can load " + a.getPC() + "people.");
	}
}

创建子类Car.java

package com.traffic;

public class Car extends Traffic {
	String name = "Car";
	public void whoAmI(Traffic a){
		System.out.println(name + " can load " + a.getPC() + " people.");
	}
}

创建子类Airplane.java

package com.traffic;

public class Airplane extends Traffic {
	String name = "Airplane";
	public void whoAmI(Traffic a){
		System.out.println(name + " can load " + a.getPC() + " people.");
	}
}

创建子类Boat.java

package com.traffic;

public class Boat extends Traffic {
	String name = "Boat";
	public void whoAmI(Traffic a){
		System.out.println(name + " can load " + a.getPC() + " people.");
	}
}

创建程序人口Initial.java

package com.traffic;

public class Initial {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// Create objects
		Traffic car = new Car();
		Traffic airplane = new Airplane();
		Traffic boat = new Boat();
		//set passenger capacity
		car.setPC(8);
		airplane.setPC(400);
		boat.setPC(200);
		//call function whoAmI()
		car.whoAmI(car);
		airplane.whoAmI(airplane);
		boat.whoAmI(boat);
	}

}


0 回复 有任何疑惑可以回复我~
#1

严北

话说楼上的朋友,不要误人子弟。
2016-05-06 回复 有任何疑惑可以回复我~
#2

qq_你就是无需凭借谁的光_0 提问者 回复 严北

太厉害了,可以加个好友吗?有什么不懂的可以请教哥哥,我这个java初学者真的学的好费劲。
2016-05-06 回复 有任何疑惑可以回复我~
#3

蔚然成麟er

你的代码中的那个whoAmI()方法中的Traffic a 是什么意思,求解答
2016-10-16 回复 有任何疑惑可以回复我~
#4

严北 回复 蔚然成麟er

传入参数
2016-10-17 回复 有任何疑惑可以回复我~
#5

蔚然成麟er

根据方法里写的代码,a应该是一个对象,才能调用对象啊???前面那个Traffic是父类,难难道不是用来创建对象的?不懂啊,大神,求详细解答
2016-10-18 回复 有任何疑惑可以回复我~
#6

严北 回复 蔚然成麟er

这是方法中的参数啊,你调用时候当然要传入一个已经创建的对象。比如你写一个函数int func(int a); 这个a只是个参数而已,你调用函数的时候就得传入一个整型。你理解一下。好好学
2016-10-18 回复 有任何疑惑可以回复我~
查看3条回复

感谢,但是没看明白,那些定义的属性都是为啥要在子类中赋值,而不是main方法中赋值。代码没明白意思

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530630    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

关于多态课后习题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信