多态在实际开发中的作用
- 降低程序的耦合度,提高程序的扩展力
- 编码中能使用多态尽量使用多态
- 父类型引用指向子类型对象
- 核心:面向抽象编程,尽量不要面向具体编程
举个例子我们来感受一下多态的魅力~~~~~
我们要实现,主人喂猫,喂狗(首先采用重载的方式)
public class Cat {
public void eat(){
System.out.print("猫在吃鱼");
}
}
public class Dog {
public void eat(){
System.out.print("狗在啃骨头");
}
}
public class Host {
public void feed(Cat c){
c.eat();
}
public void feed(Dog d){
d.eat();
}
}
public class Test {
public static void main(String[] args) {
Host h=new Host();
Cat jiaFei=new Cat();
h.feed(jiaFei);
Dog erHa=new Dog();
h.feed(erHa);
}
}
小结:如果采用这样的方式去编程,扩展力很弱,当主人想要养宠物“仓鼠”,我们需要创建“仓鼠”类,并且在“主人”类当中,还需要重载一次“feed”方法。
我们想要去做到,即使新养一个宠物,不用再去写新的feed方法
那么,就要用到多态(重头戏来喽!来喽!他来喽!)
public class Pet {
public void eat(){
}
}
public class Dog extends Pet{
public void eat(){
System.out.print("狗在啃骨头");
}
}
public class Cat extends Pet{
public void eat(){
System.out.print("猫在吃鱼");
}
}
//主人类
public class Host {
public void feed(Pet p){
p.eat();
}
}
测试代码不变
这样我们实现了,无论新增加多少个宠物,Host的feed方法都不需要改变