TypeScript:class类的继承

概述

继承,是面向对象语言的特征之一

生活中的子女继承父母拥有的所有财产

继承是指 子类 拥有 父类的 属性 和 方法

好处

提高代码的 复用性

格式

通过 extends 关键字,可以声明一个子类继承一个父类,定义格式如下:

class 父类 {
...
}

class 子类 extends 父类 {
...
}

例子

定义父类 Person:

class Person {
    // 定义姓名
    name:string = ""
    // 定义eat() 方法
    eat(food:string):void{
        console.log("吃",food);
    }
}

定义子类 Student,继承父类 Person:

class Student extends Person {

}

通过 Student 创建 lilei 对象:

const lilei = new Student()
lilei.name = '李雷' // 继承父类的 属性
lilei.eat("苹果") // 继承父类的 实例方法
console.log(lilei.name) // 继承父类的 属性

子类中定义新属性

注意:如果子类和父类 没有重名 的属性,这时的访问是 没有影响 的。

例子

子类中定义新属性:

class Student extends Person {
    clazz:string = "" // 子类中定义新属性班级,不要用class
}

使用子类的新属性:

const lilei = new Student()
lilei.name = '李雷' // 继承父类的 属性
lilei.clazz = '计算机1班' // 子类的 属性

console.log(lilei.name) // 继承父类的 属性
console.log(lilei.clazz) // 子类的 属性

子类中定义新实例方法

注意:如果子类父类中 没有重名 的成员方法,调用是没有影响 的。

例子

class Student extends Person {
    clazz:string = "" // 子类中定义新属性

    // 新增实例方法
    study(lesson:string): void {
        console.log("学习",lesson);
    }
}
const lilei = new Student()

lilei.study("英语") // 继承父类的 实例方法

继承的特点

多层继承

祖、父、子、孙

class A{}
class B extends A{} 
class C extends B{}

原文出处:/show_1IX5MbK8rcgI.html