多态的使用
多态用于参数,在方法的参数中传入其父类类型,在运行时会根据实际的运行时类型来在方法中进行相应的操作。
多态用于返回值,在方法的返回值类型上是用其实际返回值的父类型,在使用其返回值时也不必关心其实际类型。
多态使代码变得更通用,以适应需求的变化。定义在父类中的方法,可以在子类中有不同的实现将其覆盖,在为父类型的对象引用赋值相应需要功能的子类的对象实例。
例:
public class TestCar{
public static void main(String[] args){
CarFactory cf=new CarFactory();
Car c1=cf.createCar(1);
Car c2=cf.createCar(0);
c1.run();
c2.run();
cf.testCar(c2);
cf.testCar(c1);
}
}
public class CarFactory{
public Car createCar(int a){//多态用作返回值类型
if(a==1){
return new BenzCar();
}else {
return new BMWCar();
}
}
public void testCar(Car c){//多态用作方法的参数
c.test();
}
}
class Car{
public void run(){
}
public void test(){
}
}
class BenzCar extends Car{
public void run(){
System.out.println(“BenzCar is Run”);
}
public void test(){
System.out.println(“BenzCar is very good”);
}
}
class BMWCar extends Car{
public void run(){
System.out.println(“BMW is Run”);
}
public void test(){
System.out.println(“BMWCar is very beauty Car ”);
}
}
结果:
BenzCar is Run
BMW is Run
BMWCar is very beauty Car
BenzCar is very good