ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-07-17 12:04:32  阅读:165  来源: 互联网

标签:Typescript console log 静态 myname 抽象 抽象类 属性


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,console,log,静态,myname,抽象,抽象类,属性
来源: https://www.cnblogs.com/IwishIcould/p/15023013.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有