多态作为返回值类型
代码如下:
package com.imooc;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//for(int i=0;i<10;i++) {
int i=0;
while(i<10) {
Car c=CarFactory();
c.run();
i++;
}
}
//定义静态方法,汽车工厂,随机生产汽车。使用多态定义方法返回值类型。
public static Car CarFactory() {
int a=(int) Math.round((Math.random()*2));
if(0==a) {
return new Bwm("宝马","红色");
}
else if(1==a) {
return new Benz("奔驰","白色");
}
else if(2==a) {
return new Audi("奥迪","黑色");
}
else
return null;
}
public abstract class Car {
String name;
String color;
public abstract void run();
}
public class Audi extends Car{
String name;
String color;
Audi(){
}
Audi(String name,String color){
this.name=name;
this.color=color;
}
public void run() {
System.out.println(color+name+"跑的真快!!!");
}
}
public class Benz extends Car{
String name;
String color;
Benz(){
}
Benz(String name,String color){
this.name=name;
this.color=color;
}
public void run() {
System.out.println(color+name+"跑的真快!!!");
}
}
public class Bwm extends Car{
String name;
String color;
Bwm(){
}
Bwm(String name,String color){
this.name=name;
this.color=color;
}
public void run() {
System.out.println(color+name+"跑的真快!!!");
}
}