Java extends与implements关键字_HowToDoInJava 中文系列教程

Typescript - Extends 和 Implements

Typescript中 extends 和 implements 有什么区别?什么时候用哪个?

首先,这些东西不是TS特有的,其他静态语言中早就出现了。比如C#, 它对应了两个概念,一个是接口interface, 一个是类型class, 接口是定义行为的,而类型是对事务的抽象。接口不包括具体的实现,类型则是实现了所有内容。所以要对应使用接口或类型,我们就有了extends 和 implements的关键字。Typescript也遵循这些,但也有不同,我们来具体看一下。

Implements

Implements主要用于实现接口,因为接口不包括具体实现,它就像定义了一个契约,例如下面这个Point的接口:

它定义了Point的两个属性,和一个计算两点间距离的方法。所有实现该接口的类型,都必须包括接口所定义的成员。接口只能被实现(implements),实现意味着原来接口没有具体的内容,现在被你全部实现,比如那个distance方法,你在实现中需要具体给出计算逻辑,

而接口不可以被类型extends, 否则会报错。接口可以被另外一个接口extends,因为他们都是在定义接口的形状,但这不是我们讨论的范围,暂时忽略。如果一个类要extends接口,则会报错:

Extends

Extends 主要用于类型间的继承关系。一般子类型需要扩展父类型的时候使用,如下:

Manager类继承了Person的所有成员及其实现。Manager 是 Person的子类。

这里也可以使用Implements, (C#中是不行的,类型不允许被实现,TS中可以),但这样的话Person中定义的所有东西,你都必须亲自实现一遍。否则报错!

实现完所有成员后,错误消失。

总结:

Extends:该类从父级获取所有这些方法和属性,因此您不必实现。

Implements:类型必须自己实现方法和属性。

原文链接:,转发请注明来源!