接口(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