欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

7.typescript笔记_类的继承和修饰符

程序员文章站 2022-07-03 23:23:12
...

类的继承,必须在constructor中调用super

class Dog {
    constructor(name : string) {
        this.name = name;
    }
    public name : string;//修饰符公有成员,对所有人都是可见的
    private pri(){};//修饰符 私有成员 ,只能在类的本身调用,不能做类的实例和子类调用,如果给constructor使用该修饰符,那么这个类既不能被实例化,也不能被继承
    protected pro() {};//修饰符 保护成员, 只能在类和子类中访问,不能做实例中访问,constructor如果使用了该修饰符,那么这个类不能实例化,只能被继承
    readonly  legs :number = 4; //修饰符 只读属性,跟类的实例属性一样,必须初始化,
    static food : string = "bones";//修饰符 静态成员,只能通过类名访问,类的静态成员可以可以被继承
    run (){}
}
//class类中,属性在实例上面,方法在构造函数的原型上面
console.log(Dog.prototype);
let dog = new Dog("caimengru");
console.log(dog);

//类的继承
//注意 类的实例属性必须要初始化赋值
//类的所有属性都是public
 class Husky extends Dog{
     // color:string = ""
     // color : string; //如果构造函数中的属性使用了public,那么这句可以省略,更加简洁
     constructor(name:string , public color:string) {
         super(name);
         this.color = color
     }
 }

类的修饰符 5种

1.1 修饰符公有成员,对所有人都是可见的
public name : string;//修饰符公有成员,对所有人都是可见的
1.2 修饰符 私有成员

只能在类的本身调用,不能做类的实例和子类调用,如果给constructor使用该修饰符,那么这个类既不能被实例化,也不能被继承

private pri(){};
1.3 修饰符 保护成员

只能在类和子类中访问,不能做实例中访问,constructor如果使用了该修饰符,那么这个类不能实例化,只能被继承

protected pro() {};
1.4 修饰符 只读属性

跟类的实例属性一样,必须初始化

readonly  legs :number = 4; 
1.5 修饰符 静态成员

只能通过类名访问,类的静态成员可以可以被继承

static food : string = "bones";