多态在实际开发中的作用

通过一个例子来看:

主人喂养宠物


public class Master{
  public void feed(Cat cat){
    cat.eat();
  }
}

class Cat{
  public void eat{
    System.out.println("小猫在吃鱼。。。");
  }
}

在上述的例子中,主人养了一只猫并喂养它,但是后来主人又想养一只狗了。
于是,我们需要在主人类中新添加一个feed(Dog dog),如果主人的需求越来越多(客户的需求增加了),我们就需要不断的修改主人类,这是不合适的。

软件开发原则ocp(开闭原则:对扩展开放,对修改关闭。
修改越少越好。

于是我们可以在主人类中这样写代码

public class Master{
  public void feed(Pet p){
    p.eat();
  }
}

class Pet{
  public void eat{};
}

class Cat extends Pet{
  public void eat{
    System.out.println("小猫在吃鱼。。。");
  }
}
  

在主人类中使用一个宠物类,以后再养狗就可以继承这个宠物类,然后重写Pet类的eat()方法,主人就可以喂养狗了,不需要修改Master类了。

在上面的例子中,我们通过Pet类来使程序的扩展性更强,这就是面向抽象编程,面向一个抽象的宠物类,而不是一个个具体的Dog,Cat等。这其中运用了多态来实现,多态是面对抽象的终于实现途径。

多态可以降低程序的耦合度,提高程序的扩展力。

posted @ 2021-10-02 15:16  这个世界会好的  阅读(123)  评论(0编辑  收藏  举报