操作符extends的作用是什么?

简介: 操作符extends的作用是什么?

在TypeScript中,extends关键字用于创建类之间的继承关系。它允许一个类(子类)继承另一个类(父类)的属性和方法,并可以在子类中添加新的属性和方法或者修改继承自父类的属性和方法。


extends的作用是实现类的继承,从而促进代码重用和组织。


以下情况下可以使用extends:


  1. 当存在一个通用的类,并且希望创建一个特定的类来继承通用类的属性和方法时。
  2. 当需要通过继承来实现类之间的层次结构和多态性时。
  3. 当希望在子类中重写父类的方法或者添加新的方法时。

下面是一个示例代码:

class Animal {
  name: string;
 
  constructor(name: string) {
    this.name = name;
  }
 
  eat() {
    console.log(`${this.name} is eating.`);
  }
}
 
class Dog extends Animal {
  breed: string;
 
  constructor(name: string, breed: string) {
    super(name);
    this.breed = breed;
  }
 
  bark() {
    console.log(`${this.name} is barking.`);
  }
}
 
let dog = new Dog("Max", "Labrador");
dog.eat(); // 输出: Max is eating.
dog.bark(); // 输出: Max is barking.


在上述代码中,我们定义了一个基类 Animal,它有一个属性 name 和一个方法 eat()。然后,我们通过 extends 关键字创建了一个子类 Dog,它继承了 Animal 类的属性和方法,并添加了自己的属性 breed 和方法 bark()。在子类的构造函数中使用 super 关键字调用父类的构造函数。


通过创建 Dog 类的实例,我们可以调用继承自父类的方法 eat() 和子类自己的方法 bark()。


使用extends关键字时,需要注意以下条件:

  1. 子类只能继承一个父类,即TypeScript不支持多重继承。
  2. 子类可以继承父类的公共成员(属性和方法),但不能继承私有成员。
  3. 子类可以重写继承自父类的方法。
  4. 子类的构造函数必须调用父类的构造函数,以便初始化继承自父类的属性。

总之,通过使用extends关键字,可以建立类之间的继承关系,从而实现代码的重用和组织。

相关文章
|
7月前
|
Java 编译器
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
|
8月前
|
编译器
匿名类型(Class)
匿名类型是无需预定义的,直接通过 `new {}` 创建实例的类型,编译器自动推断并生成只读属性和相关方法如`ToString()`。常用于简单场景,但ValueTuple提供更好的性能且无需额外类型。
|
8月前
|
安全 JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
46 0
|
8月前
|
JavaScript
操作符extends的作用是什么?
操作符extends的作用是什么?
|
Java
【Java面向对象】继承的认识与实现(2) 关键字 this 与 super 区别
【Java面向对象】继承的认识与实现(2) 关键字 this 与 super 区别
80 0
|
8月前
|
JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
|
8月前
|
JavaScript
操作符extends的作用是什么
操作符extends的作用是什么
71 2
|
8月前
|
JavaScript 安全
操作符keyof的作用是什么
操作符keyof的作用是什么
75 3
|
Java 编译器
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
261 0
|
Java C语言
Java继承——概念及extends关键字的使用
Java继承——概念及extends关键字的使用
207 0