让你彻底理解Typescript中静态成员和抽象方法

1.Typescript中static详解

静态成员:在类中通过 static 修饰的属性或者方法
那么就是静态的属性静态方法
也称之为:静态成员(静态成员包含静态属性和静态方法)
静态成员在使用的时候通过【类名.静态属性】来访问

2.访问和修改static静态成员的小栗子

class Person{
    // 类中默认有一个内置name属性
    // 静态属性myname
    static myname:string='小可爱'
    sayHi() {
        console.log('sayHi')
    }
}
const per = new Person();
// 访问类中的静态属性
console.log(Person.myname);
// 修改类中的静态属性
Person.myname = '大可爱'
console.log(Person.myname);
//输出[大可爱]

3.抽象方法

抽象类中包含抽象方法:(抽象方法一般【没有任何具体内容】的实现)
抽象类中也可以包含实例方法
抽象类是不能够被实例化
抽象类可以让子类进行实例化以及实现内部所有的抽象方法
抽象类中也可以有抽象属性
{但是在实际开发过程中抽象类中一班不会有抽象属性}
我们知道了抽象类中可以包含:抽象属性  抽象方法  实例方法
ps:子类继承了抽象类,子类就必须实现抽象类中的抽象方法

4.写抽象类的注意点

abstract class Animals{
    // 这样写法是错误的,
    // 因为抽象方法一般没有任何具体内容的实现
    // abstract eat (){
    //     console.log('跑着吃,跳着吃')
    // }
    abstract eat()
}
// 这样的写法是错误的。
// 因为:抽象类不能够被实例化
// let dog=new Animals()

5.抽象类

abstract class Animals{
    // 这样写法是错误的,
    // 因为抽象方法一般没有任何具体内容的实现
    // abstract eat (){
    //     console.log('跑着吃,跳着吃')
    // }
    abstract eat()
    abstract sleep();
    // 抽象类中的抽象属性
    abstract myname: string
    // 抽象方法也可以包含实例方法
    say() {
        console.log('你好啊')
    }
}
// 子类继承了抽象类,子类就必须实现抽象类中的抽象方法
class Dog extends Animals {
    // 重新实现抽象类中的抽象方法
    eat() {
        console.log('我是狗,趴着吃')
    }
    // 重新实现抽象类中的抽象方法
    sleep() {
        console.log('我是狗,趴着睡')
    }
    // 实现抽象属性
    myname: string="狗子"
}
// 实例化
let xiaohei = new Dog();

// 直接调用方法
xiaohei.eat();//我是狗,趴着吃

// 调用的是抽象类中的实例方法
xiaohei.say();//你好啊

// 修改类中的属性
xiaohei.myname = '小黄狗'
console.log(xiaohei)
// 输出 Dog { myname: '小黄狗' }

相关文章

我最大的一个关于TypeScript的问题是,它将原型的所有方法(无...
我对React很新,我正在尝试理解子组件之间相互通信的简洁方法...
我有一个非常简单的表单,我将用户电子邮件存储在组件的状态,...
我发现接口非常有用,但由于内存问题我需要开始优化我的应用程...
我得到了一个json响应并将其存储在mongodb中,但是我不需要的...
我试图使用loadsh从以下数组中获取唯一类别,[{"listing...