TypeScript抽象类、约束和接口、接口扩展接口继承

抽象类抽象类做为其它派生类的基类使用。 它们一般不会直接被实例化。 不同于接口,抽象类可以包含成员的实现细节。abstract关键字是用于定义抽象类和在抽象类内部定义抽象方法。abstract class Animal { abstract makeSound(): void; move(): void { console.log('roaming the earch...'); }}抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。 抽象方法.
摘要由CSDN通过智能技术生成

抽象类

抽象类做为其它派生类的基类使用。 它们一般不会直接被实例化。 不同于接口,抽象类可以包含成员的实现细节。 abstract关键字是用于定义抽象类和在抽象类内部定义抽象方法。

abstract class Animal {
    abstract makeSound(): void;
    move(): void {
        console.log('roaming the earch...');
    }
}

抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。 抽象方法的语法与接口方法相似。 两者都是定义方法签名但不包含方法体。 然而,抽象方法必须包含 abstract关键字并且可以包含访问修饰符。

abstract class Department {

    constructor(public name: string) {
    }

    printName(): void {
        console.log('Department name: ' + this.name);
    }

    abstract printMeeting(): void; // 必须在派生类中实现
}

class AccountingDepartment extends Department {

    constructor() {
        super('Accounting and Auditing'); // 在派生类的构造函数中必须调用 super()
    }

    printMeeting(): void {
        console.log('The Accounting Department meets each Monday at 10am.');
    }

    generateReports(): void {
        console.log('Generating accounting reports...');
    }
}

let department: Department; // 允许创建一个对抽象类型的引用
department = new Department(); // 错误: 不能创建一个抽象类的实例
department = new AccountingDepartment(); // 允许对一个抽象子类进行实例化和赋值
department.printName();
department.printMeeting();
department.generateReports(); // 错误: 方法在声明的抽象类中不存在

 abstract 抽象方法只能放在抽象类里面。

用abstract 关键字定义抽象类 和方法,抽象类和抽象方法用来定义标准,抽象类中的抽象类派生类必须实现,抽象类中的非抽象方法,派生类可以不实现。

接口

TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeSc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeScript 中,类和接口是两个重要的概念,用于面向对象编程和定义对象的结构。下面是关于 TypeScript 中类和接口的一些重要信息: 1. 类(Classes): - 类是对象的蓝图,用于定义对象的属性和方法。 - 使用 `class` 关键字来定义一个类,并使用构造函数来初始化类的实例。 - 可以使用 `public`、`private` 和 `protected` 访问修饰符来控制成员的可见性。 - 可以使用 `extends` 关键字来实现类之间的继承。 - 类可以包含属性、方法和构造函数。 以下是一个使用 TypeScript 定义和使用类的示例: ```typescript class Person { private name: string; constructor(name: string) { this.name = name; } public greet() { console.log(`Hello, ${this.name}!`); } } const person = new Person("John"); person.greet(); // 输出:Hello, John! ``` 2. 接口(Interfaces): - 接口用于定义对象的结构或类的契约,并且在 TypeScript 中被广泛用于类型检查和类型推断。 - 使用 `interface` 关键字来定义一个接口,并在接口中定义属性和方法的签名。 - 接口可以被类实现(使用 `implements` 关键字)或对象使用(使用 `:` 进行类型注解)。 - 接口可以继承其他接口,以便组合多个接口的结构。 - 接口的属性可以是可选的,使用 `?` 来标记。 以下是一个使用 TypeScript 定义和使用接口的示例: ```typescript interface Shape { color: string; area(): number; } class Circle implements Shape { color: string; radius: number; constructor(color: string, radius: number) { this.color = color; this.radius = radius; } area() { return Math.PI * this.radius * this.radius; } } const circle: Shape = new Circle("red", 5); console.log(circle.area()); // 输出:78.53981633974483 ``` 通过使用类和接口,你可以更好地组织和定义你的代码,并在编译时进行类型检查,以减少错误并提高代码的可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值