1 什么是多态?简单的说就是基类(有三种类型:父类,抽象类,接口)的引用指向子类的对象,当调用基类的成员时,调用的是不同的子类的重写的成员
为什么使用多态?统一变量类型为父类,可以解决项目中紧耦合的问题,提高程序的可扩展性。
什么地方使用多态?可以用在方法的参数中和方法的返回类型中。
用在参数中:
public abstract class Driver{
/*属性*/
public void run();//让子类来运行
}
public Benz extends Driver{
public void run(){
System.out.println("Benz在以200迈的速度在run");
}
}
public JD extends Driver{
public void run(){
System.out.println("JD is running...");
}
}
public class Person{
private Driver driver;
public Person(){
}
public Person(Driver driver){
this.driver = driver;
}
public void drive(){
driver.run();
}
public void setDriver(Driver driver){//运用参数多态,以后不管买什么车都可以
this.driver = driver;
}
public static void main(String args[]){
Person p =new Person();
JD jd = new JD();//刚开始没钱就买辆JD吧
p.setDriver(jd);
p.driver();
Benz benz = new Benz{();//有钱换车了
p.setDriver(benz);
p.driver();
}
}用在返回类型中:工厂模式
public class CarFactory{
public Car factory(String carName){
if(carName.equals("JD")){
return new JD();
}else if(carName.equals("Benz")){
return new Benz();
}else{
System.out.println("对比起,不伺候");
return null;
}
}
}

本文介绍了多态的概念,探讨了为何及何时使用多态,并通过具体的Java示例展示了如何在方法参数和返回类型中应用多态,以增强软件设计的灵活性和可扩展性。
3623

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



