题目:

java实验5(图1)

代码如下:

import java.util.*;
class Vehicle{
	private String name;
	String getName(){
		return this.name;
	}
	
	void Vehicle(String name){
		this.name=name;
		System.out.println("创建了"+this.name);
	}
	int money(int distance,int count){
		int sum=0;
		sum=distance*3;
		return sum;
	}
	
}
class Car extends Vehicle{
	public Car(String name){
		super.Vehicle(name);
	}
	int money(int distance,int count){
		int sum=0;
		sum=distance*3;
		return sum;
	}
}
class Bus extends Vehicle{
	public Bus(String name){
		super.Vehicle(name);
	}
	int money(int distance,int count){
		int sum=0;
		sum=distance+count;
		return sum;
	}
}
class Truck extends Vehicle{
	public Truck(String name){
		super.Vehicle(name);
	}
	int money(int distance,int count){
		int sum=0;
		sum=distance*2;
		return sum;
	}
}
public class yourname5 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Random R=new Random();
		
		
		Vehicle[] veh=new Vehicle[6]; //抽象类不能创建实例,但这里没有真分配内存去创建实例,只是声明了数组长度。
		for(int i=0;i<6;i++){
			int r=R.nextInt(3);
			switch(r){//这里才是给第i个元素分配内存,创建的是某种子类的实例
			case 0:veh[i]=new Car("Car");break;
			case 1:veh[i]=new Bus("Bus");break;
			case 2:veh[i]=new Truck("Truck");break;
			}
			  
		}
		//主程序里的输出是
		for(int i=0;i<6;i++)
				{
					System.out.println("该交通工具是"+veh[i].getName()+",花销是 "+veh[i].money(10, 3));
				}
	}

}

题目文件: