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

交通工具问题

有谁能解释下多态的用处在哪呢?自己不太明白

//Traffic类
package com.edu;

public class Traffic {
	public String TrafficName;	//交通工具的名称
	public int maxNum;		//交通工具的最大承载量
	
	public void showData(){
		System.out.println(TrafficName+"这种交通工具最多允许乘坐:"+maxNum+"人");
	}
}

//Car类
package com.edu;

public class Car extends Traffic{
	public Car(int max){
		TrafficName = "汽车";
		maxNum = max;
	}
}

//Boat类
package com.edu;

public class Boat extends Traffic{
	public Boat(int max){
		TrafficName = "小船";
		maxNum = max;
	}
}

//Intial类
package com.edu;
import java.util.Scanner;

public class Initial {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Traffic tool = new Traffic();
		System.out.print("请输入交通工具的名称:");
		Scanner input = new Scanner(System.in);
		String TrafficName = input.next();
		System.out.print("请输入交通工具的最大乘载量:");
		int maxNum = input.nextInt();
		if(TrafficName.equals("汽车")){
			tool = new Car(maxNum);
		}else if(TrafficName.equals("小船")){
			tool = new Boat(maxNum);
		}
		
		tool.showData();
	}
}


正在回答

5 回答

你这是方法的多态,通过父类的引用tool分别指向子类的对象Car或Boat,同时执行各自的构造函数,写入maxNum,然后通过调用没有重写的父类方法showData()输出所需信息。

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

666666

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

不是 我试了你这个  你好像没用到子类啊

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

子类Car类和Boat类的载人情况的输出都使用了父类的showData()方法,统一了调用使程序更加直观明了(如果分别在Cal类和Boat类自己定义方法的话会使用户不明所以)

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

举报

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

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

进入课程

交通工具问题

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