/*
* 程序思想
*1. 按照老师的要求敲的代码,并能在MyEclipse 2014上跑起来
*2. 能够根据让用户自己输入交通工具能够乘坐的人数
*3. 运用了前面学的知识,算做一种复习
*/
//父类Traffic代码块
package com.aslife.traffic;
//用于被各种类型交通工具子类继承的父类
public class Traffic {
int trafficSums; //定义一个变量用于保存交通工具能乘坐乘客的数量
String trafficName; //定义一个变量用于保存交通工具的名称
public void showData(){
System.out.println(trafficName + "这种交通工具能够乘坐" + trafficSums + "人");
return ;
}
}
//子类Car代码块
package com.aslife.traffic;
//输出汽车信息的之类
public class Car extends Traffic {
//拥有参的构造方法用于接收用户输入的信息
public Car(int newTrafficSums){
trafficName = "Car"; //修改父类的trafficName变量
trafficSums = newTrafficSums; //将用户输入的信息赋值给变量newTrafficSums
}
}
//子类Steamboat代码块
package com.aslife.traffic;
//输出轮船信息的子类
public class Steamboat extends Traffic {
//拥有参的构造方法用于接收用户输入的信息
public Steamboat(int newTrafficSums){
trafficName = "Steamboat"; //修改父类的trafficName变量
trafficSums = newTrafficSums; //将用户输入的信息赋值给变量newTrafficSums
}
}
//子类Airplane代码块
package com.aslife.traffic;
//输出飞机信息的子类
public class Airplane extends Traffic {
//拥有参的构造方法用于接收用户输入的信息
public Airplane(int newTrafficSums){
trafficName = "Airplane"; //修改父类的trafficName变量
trafficSums = newTrafficSums; //将用户输入的信息赋值给变量newTrafficSums
}
}
//入口类InitialTraffic代码块
package com.aslife.traffic;
import java.util.Scanner;
//入口类
public class InitialTraffic {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入汽车能乘坐的乘客数量:");
//创建对象car并通过Car方法类的构造函数根据用户输入的信息对Car方法类中的变量进行修改
Traffic car = new Car(input.nextInt());
car.showData();
System.out.println("请输入轮船能乘坐的乘客数量:");
//创建对象steamboat并通过steamboat方法类的构造函数根据用户输入的信息对steamboat方法类中的变量进行修改
Traffic steamboat = new Steamboat(input.nextInt());
steamboat.showData();
System.out.println("请输入飞机能乘坐的乘客数量");
//创建对象airplane并通过airplane方法类的构造函数根据用户输入的信息对airplane方法类中的变量进行修改
Traffic airplane = new Airplane(input.nextInt());
airplane.showData();
}
}
//欢迎各位同学指出缺点
既然是由用户输入,我觉得可以加一个判断,比如判断输入的是不是一个整数,是不是数值
//修改父类的trafficName变量 你修改的这个变量有什么用?
父类Traffic的showData()方法里的return;有什么作用?感觉多余了吧。
学习到了。谢谢楼主
原来如此
其实能够说下像这种多态的用处吗?Traffic steamboat = new Steamboat();为何不直接写成Steamboat steamboat = new Steamboat();不也一样能继承吗?