面向對象的三要素之多態

不知道爲啥,看到多態,想到了一個詞叫多肽鏈,好吧,貌似沒什麼卵關係。javascript

多態:java

①同一個接口,不一樣表現。編程

②JS應用極少。this

③須要結合JAVA等語言的接口、重寫、重載等功能。code

class People {
  constructor(name) {
    this.name = name;
  }
  saySomething() {}
}

class A extends People {
  constructor(name) {
    super(name);
  }
  saySomething() {
    alert("I am A");
  }
}

class B extends People {
  constructor(name) {
    super(name);
  }
  saySomething() {
    alert("I am B");
  }
}

let a = new A("a");
let b = new B("b");
a.saySomething(); //I am A
b.saySomething(); //I am B

由上述代碼可知,在多態中,定義了一個接口,實現了不一樣的功能。繼承

好處:接口

①保持了子類的開放性和靈活性。不是說什麼功能都是父類控制好了就不動了,這確定不行,咱們能夠把公共的功能抽離出來放在父類中去繼承減小代碼量,減小冗餘,提升複用,可是若是子類中須要作一些靈活的特殊處理,仍是能夠本身修改的。ip

②面向接口編程,不用管子類下面是怎麼實現的,就管父類有多少個接口就行。class

③JS中基本不怎麼用。
 語言

相關文章
相關標籤/搜索