交通工具问题

来源:10-1 Java 中的多态

_Doogie

2016-12-08 11:52

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

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


写回答 关注

4回答

  • 原木兮
    2017-02-28 18:18:08

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

  • qq_梦想_11
    2017-02-24 09:28:03

    666666

  • 慕粉192953287
    2016-12-13 14:37:54

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

  • Des1re
    2016-12-08 16:14:01

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

Java入门第二季 升级版

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

530666 学习 · 6091 问题

查看课程

相似问题