js面向对象-多态

2022-04-05  本文已影响0人  zhao_ran

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

比如,本人家里养了一只狗,一只猫。当主人向他们发出‘叫’的命令时。狗会汪汪的叫,而猫会喵喵的叫

多态背后的思想就是 ‘做什么’ 和 ‘谁去做’ 分离开,也就是把 ‘可变的事物’ 和 ‘不变的事物’ 分离开
以上的例子中可以说明,动物都会叫是不变的,不同的动物怎么叫是可变的
把不变的抽离出来,把可变的封装起来,这给予了我们扩张代码的能力,不管多少种动物,都可以增加代码的方式来实现,无需改变产生行为的代码。
实现多态的方式

class Behavior {
        sound(sound) {
          console.log("[ sound ] >", sound);
        }
      }

      class Dog extends Behavior {
        constructor(name) {
          super();
          this.name = name;
        }
      }
      class Cat extends Behavior {
        constructor(name) {
          super();
          this.name = name;
        }
      }

 const dog = new Dog("dog");
 const cat = new Cat("cat");
      dog.sound("汪汪");//汪汪
      cat.sound("喵喵");//喵喵
上一篇 下一篇

猜你喜欢

热点阅读