当前位置: 首页 > 知识库问答 >
问题:

在TypeScript中“extends”和“implements”有什么区别

邰博远
2023-03-14
class Person {
  name: string;
  age: number;
}
class Child extends Person {}
class Man implements Person {}

共有1个答案

童铭晨
2023-03-14
  • 扩展表示:

新班是个孩子。它得到了继承带来的好处。它将所有属性、方法作为其父级。它可以重写其中的一些并实现新的,但是父级的东西已经包括在内了。

  • 实现意味着:

扩展以从继承中获利(请参见wiki)。小引用:

...在大多数基于类的面向对象语言中,继承是一种机制,其中一个对象获取父对象的所有属性和行为。继承允许程序员:创建基于现有类的类······

实现将更多地用于多态性(请参见wiki)。小引用:

...多态性是为不同类型的实体提供单一接口...

因此,我们可以有真正不同的类MAN的继承树。

class Man extends Human ...

但是如果我们也声明我们可以假装是不同的类型-person:

class Man extends Human 
          implements Person ...
function(engine){
  engine.render() // any type implementing render() can be passed
}
class implements class

有它的作用,在它有意义的地方

在面向对象语言中,如C#...没有办法做到这一点...

当接口类型扩展类类型时,它继承类的成员,但不继承它们的实现。这就好像接口声明了类的所有成员而没有提供实现一样。接口甚至继承基类的私有成员和受保护成员。这意味着,当您创建一个接口来扩展具有私有成员或受保护成员的类时,该接口类型只能由该类或其子类实现。

class Control {
    private state: any;
}

interface SelectableControl extends Control {
    select(): void;
}

class Button extends Control implements SelectableControl {
    select() { }
}

class TextBox extends Control {
    select() { }
}

// Error: Property 'state' is missing in type 'Image'.
class Image implements SelectableControl {
    private state: any;
    select() { }
}

class Location {

}
    null
 类似资料:
  • 本文向大家介绍extends 和 implements 有什么区别?相关面试题,主要包含被问及extends 和 implements 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 extends 和 implements 有什么区别? 作者:rottenpen

  • 问题内容: 我对两者之间的区别感到困惑。在我的应用程序中,我刚刚使用了Extends Activity,并且该应用程序运行良好,那么Extends Application的目的是什么? 您会在Android应用程序中创建的第一堂课上使用它吗? 谢谢。 问题答案: android.app.Application类是用于扩展和存储应用程序全局状态的可选功能。还有其他方法可以执行此操作,因此大多数应用程

  • 本文向大家介绍vue中mixins和extends有什么区别?相关面试题,主要包含被问及vue中mixins和extends有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 extend用于创建vue实例 mixins可以混入多个mixin, extends只能继承一个,mixins类似于面向切面的编程(AOP),extends类似于面向对象的编程, 优先级Vue.extend>extend

  • 我认为在这个问题上,这是一种不同的倾向。也许这个问题更好的措辞,你什么时候会使用公共,而不是出口?从我所读到的内容来看,似乎任何C#/Java人员认为公开的地方,您实际上想要的都是导出。 您将在何时/何地使用public而不是export?

  • 问题内容: 什么是Java中的以下关键字的区别:,? 问题答案: an 是a的行为的抽象规范,而a 是此类规范的具体实现。 因此,当您撰写本文时,是在说您已经在实现的实现中满足了一些抽象规范。 意味着您可以采用实现()或规范(),并使用其他功能或新功能对其进行添加(或更改其行为的规范),从而修改其行为并对其进行_扩展_ 。

  • type 和 interface 都可以定义对象,二者到底有何区别?