接口(Interfaces)能夠用於對「對象的形狀(Shape)」進行描述。這一章主要介紹接口的另外一個用途,對類的一部分行爲進行抽象。code
實現(implements)是面向對象中的一個重要概念。通常來說,一個類只能繼承自另外一個類,有時候不一樣類之間能夠有一些共有的特性,這時候就能夠把特性提取成接口(interfaces),用 implements 關鍵字來實現。這個特性大大提升了面向對象的靈活性。對象
舉例來講,門是一個類,防盜門是門的子類。若是防盜門有一個報警器的功能,咱們能夠簡單的給防盜門添加一個報警方法。這時候若是有另外一個類,車,也有報警器的功能,就能夠考慮把報警器提取出來,做爲一個接口,防盜門和車都去實現它:繼承
interface Alarm { alert(); } class Door { } class SecurityDoor extends Door implements Alarm { alert() { console.log('SecurityDoor alert'); } } class Car implements Alarm { alert() { console.log('Car alert'); } }
一個類能夠實現多個接口:接口
interface Alarm { alert(); } interface Light { lightOn(); lightOff(); } class Car implements Alarm, Light { alert() { console.log('Car alert'); } lightOn() { console.log('Car light on'); } lightOff() { console.log('Car light off'); } }
上例中,Car 實現了 Alarm 和 Light 接口,既能報警,也能開關車燈。it
接口與接口之間能夠是繼承關係:console
interface Alarm { alert(); } interface LightableAlarm extends Alarm { lightOn(); lightOff(); }
上例中,咱們使用 extends 使 LightableAlarm 繼承 Alarm。table