多态在实际开发中的应用
1、分析:以主人喂养宠物这个场景要实现需要进行类型的抽象:
主人【类】
主人可以喂养宠物,所以主人有喂养的这个动作
宠物【类】
宠物可以吃东西,所以宠物有吃东西这个动作
2、面向对象编程的核心:定义好类,然后将类实例化为对象,给一个环境驱使一下,让哥个对象之间写作起来形成一个系统
3.多态的作用是什么?
核心:面向抽象编程,不再面向具体对象编程,宠物是一个抽象的类,不再面向具体的宠物如猫、狗编程
/*宠物猫类*/
public class Cat{
public void eat()
{
system.out.println("小猫在吃鱼");
}
}
/*主人类*/
public class Master{
public void feed(Cat c){
c.eat();
}
//当多了一个宠物够的时候,需要添加新的方法
public void feed(Dog d){
d.eat();
}
}
}
/*写一个测试类*/
public class Test{
public static void main(String[] args)
{
Cat c1 = new Cat();
Master m1 = new Master();
m1.feed(c1);
}
/*写一个宠物狗*/
public class Dog{
public void eat(){
System.out.println("小狗在啃骨头 ");
}
}
}
以上代码片段可以看出,当添加一个新动物狗的时候,需要在‘主人’类中添加新的方法,从而可以看出没有使用多态,Masterde 扩展能力很差,因为只要加一个新宠物,就需要在Master类中添加新的方法
//提高程序的扩展力,即降低程序的耦合力【解耦合】
//当增加新的宠物的时候,不用再更改Master类内部的内容
public class Master{
public void feed(Pet pet){
pet.eat();
}
}
//加入一个宠物类
public class Pet{
public void eat(){
}
//然后让狗和猫继承于宠物类
public class Dog extends Pet{
public void eat(){
Systen.out.println("小狗吃东西");
}
}
public class Cat extends Pet{
public void eat(){
System.out.println("小猫在吃东西");
}
}
}