首页 > 其他 > 详细

【Typescript】类,类的继承以及成员修饰符(6)

时间:2021-03-09 09:28:19      阅读:36      评论:0      收藏:0      [点我收藏+]

类的定义

类描述了所创建的对象共同的属性和方法。

class Dog {
    constructor(name: string) {
        this.name = name;
    }

    name: string = ‘dog‘;
}

let dog = new Dog(‘hello‘);

console.log(dog);

类的继承

TypeScript 支持继承类,即我们可以在创建类的时候继承一个已存在的类,这个已存在的类称为父类,继承它的类称为子类。
类继承使用关键字 extends,子类除了不能继承父类的私有成员(方法和属性)和构造函数,其他的都可以继承。
TypeScript 一次只能继承一个类,不支持继承多个类,但 TypeScript 支持多重继承(A 继承 B,B 继承 C)。

class Dog {
    constructor(name: string) {
        this.name = name;
    }

    name: string = ‘dog‘;
}

class Husky extends Dog {
    constructor(name: string, color: string) {
        super(name);
        this.color = color;
    }
    color: string = ‘blue‘;
}

let dog = new Dog(‘hello‘);
console.log(dog);

类的修饰符

类的修饰符有public, private, protected, readonly, static,下面我们来看看分别代表什么含义。
public: public 修饰的属性或方法是公有的,可以在任何地方被访问到,默认所有的属性和方法都是 public 的
private: private 私有成员,不能被实例调用,也不能被子类调用, 也可以在构造函数中加上private
protected: protected 受保护成员 protected只能在类,或者子类中访问,而不能被实例访问。也就是这个方法或者属于不能被实例,只能被继承,也就是一个基类。
readonly: 只读属性,只读属性需要被初始化。
static: 类的静态成员,只能通过类的父类来调用,而不能通过子类来调用。

class Dog {
    constructor(name: string) {
        this.name = name;
    }

    name: string = ‘dog‘;

    readonly legs:number = 4; // 只读属性需要加上默认值

    static food:string = ‘bones‘; 

    private priv() {}

    protected pro() {}
}

class Husky extends Dog {
    constructor(name: string, color: string) {
        super(name);
        this.color = color;
        this.pro(); // 这里是protected 
        // this.pri(); // pri在类的Husky中不存在
    }
    color: string = ‘blue‘;
}

let dog = new Dog(‘hello‘);
// console.log(dog.priv()); // 这里会报private是私有属性,只能在Dog中使用
// console.log(dog.food); // 属性“food”在类型“Dog”上不存在。你的意思是改为访问静态成员“Dog.food”吗?
console.log(Dog.food);



【Typescript】类,类的继承以及成员修饰符(6)

原文:https://www.cnblogs.com/Joannamo/p/14503415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!