多态作为返回值类型
代码如下:
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+"跑的真快!!!");
}
}
本文通过具体示例,展示了在Java中如何使用多态作为方法的返回值类型,通过一个汽车工厂模式,随机生成不同品牌的汽车对象并调用其共有的run方法,深入理解多态在实际编程中的应用。
900

被折叠的 条评论
为什么被折叠?



