首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TypeScript-类存取器 和 TypeScript-抽象类

TypeScript-类存取器 和 TypeScript-抽象类

原创
作者头像
杨不易呀
发布于 2023-09-28 11:19:13
发布于 2023-09-28 11:19:13
2670
举报
文章被收录于专栏:杨不易呀杨不易呀

存取器概述

通过 getters/setters 来截取对对象成员的访问

代码语言:typescript
AI代码解释
复制
class Person {
    private _age: number = 0;
    set age(val: number) {
        console.log('进入了set age方法');
        if (val < 0) {
            throw new Error('人的年龄不能小于零');
        }
        this._age = val;
    }

    get age(): number {
        console.log('进入了get age方法');
        return this._age;
    }
}

let p = new Person();
p.age = 18;

// 如下👇代码本质类同:p.age(-6);
// p.age = -6;
console.log(p.age);

抽象类概述

抽象类是专门用于定义那些不希望被外界直接创建的类的 抽象类一般用于定义基类 抽象类和接口一样用于约束子类

  • 首先来看看没有抽象类的实现写法,在 TypeScript-类方法修饰符 章节当中我已经编写过了,这里就不在编写了,就直接开始看抽象类即可

错误示例:

image-20211128225454524
image-20211128225454524
代码语言:typescript
AI代码解释
复制
abstract class Person {
    abstract name: string;

    abstract say(): void;
}

class Student extends Person {
    name: string = 'BNTang';

    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}

let p = new Person();

正确示例:

代码语言:typescript
AI代码解释
复制
abstract class Person {
    abstract name: string;

    abstract say(): void;
}

class Student extends Person {
    name: string = 'BNTang';

    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}

let stu = new Student();
stu.say();

抽象类和接口的区别

接口中只能定义约束, 不能定义具体实现 而抽象类中既可以定义约束, 又可以定义具体实现

image-20211128225324912
image-20211128225324912
代码语言:typescript
AI代码解释
复制
abstract class Person {
    abstract name: string;

    abstract say(): void;

    eat(): void {
        console.log(`${this.name}正在吃东西`);
    }
}

class Student extends Person {
    name: string = 'BNTang';

    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}

let stu = new Student();
stu.say();
stu.eat();
end02
end02
输入图片说明
输入图片说明

最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

输入图片说明
输入图片说明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TypeScript-类和接口
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/09/28
2690
TypeScript-类
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/09/28
2220
TypeScript-类
TypeScript-类属性修饰符
TypeScript 的类属性修饰符是一种重要的语言特性,用于控制类成员的可访问性和行为。主要有三种修饰符:public、private 和 protected。
杨不易呀
2023/09/28
4220
TypeScript-类属性修饰符
typescript笔记2 函数 类 接口
es5中方法实参和形参可以不一样,但是ts中必须一样,如需不一样可配置为可选参数 注:可选参数必须配置在最后面
路过君
2022/04/13
1.1K1
TypeScript-类方法修饰符和TypeScript-类可选属性和参数属性
博主假设有这么一个需求: 有一个基类, 所有的子类都需要继承于这个基类, 但是我们不希望别人能够通过基类来创建对象:
杨不易呀
2023/09/28
4550
TypeScript-类方法修饰符和TypeScript-类可选属性和参数属性
你应该知道的TypeScript高级概念
来源 | https://juejin.cn/post/6897779423858737166
winty
2020/12/07
5560
TypeScript 学习笔记(一)
TypeScript 是 JavaScript 的一个超集,主要提供了 类型系统 和对 ES6 的支持,由 Microsoft 开发。 目前应用:vue3.0,angular2.0,vscode, react ....
前端老鸟
2020/05/18
3K0
TypeScript学习笔记(四)—— TypeScript提高
Type又叫类型别名(type alias),作用是给一个类型起一个新名字,不仅支持interface定义的对象结构,还支持基本类型、联合类型、交叉类型、元组等任何你需要手写的类型。
张果
2022/10/04
2.6K0
TypeScript学习笔记(四)—— TypeScript提高
TypeScript 面向对象程序设计(OOP)
在 JavaScript 中 ES6 之前我们使用函数(构造器函数)和基于原型来创建一个自定义的类,但这种方式总会让人产生困惑,特别是习惯了 Java、PHP 等面向对象编程的同学来说更加难以理解。
五月君
2020/05/19
8940
TypeScript学习第五篇 - 静态属性、静态方法、多态、抽象类
在TypeScript里通过 static 关键字来修饰静态属性与静态方法。静态属性与静态方法不需要实例化就可以访问,访问时直接通过类名来调用,静态方法不能访问当前类里的属性,只能访问当前类里的静态属性。
越陌度阡
2020/11/26
3.7K0
TypeScript
TypeScript中的Object类型并不单指普通的对象类型,而是泛指非原始类型,也就是对象,数组和函数
conanma
2021/10/28
1.9K0
typescript中的class和interface
刚刚的vue3.0一发布,各大网址和社区以及公众号已经被Vue3.0的One Piece版本所霸屏,出现不同的标题有着同样内容的现象,借此热度我们不如好好回顾一下ts基础知识,备战vue3.0的正式使用。
小丑同学
2020/09/27
2K0
typescript中的class和interface
一份不可多得的TypeScript系统入门整理
函数声明(Function Declaration)和函数表达式(Function Expression)
@超人
2021/07/29
1.9K0
一份不可多得的TypeScript系统入门整理
继承、抽象类、代码块
项目经理:姓名,工号,工资) ——————————————》员工:姓名,工号,工资 程序员: 姓名,工号,工资)
小炜同学
2022/09/23
5670
【Java】抽象类和接口
2.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则编译器会报错,但如果子类也是抽象类,那么其子类可以不对父类中的抽象类进行重写
喜欢做梦
2024/11/25
2500
【Java】抽象类和接口
TypeScript基础知识
在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范。 在程序设计里面,接口起到了一种限制和规范的作用。 接口定义了某一批类所需遵守的规范,接口不必关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类必须提供某些方法,提供这些方法的类就可以满足实际需要。ts中的接口类似java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。
Clearlove
2021/03/04
7860
typeScript的基础认识
世间万物皆对象
2024/03/20
1560
typescript 多继承_说明类的继承和多态有什么作用
对于传统的 JavaScript 程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员使用这些语法就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的。 从 ECMAScript 2015,也就是 ES6 开始, JavaScript 程序员将能够使用基于类的面向对象的方式。 使用 TypeScript,我们允许开发者现在就使用这些特性,并且编译后的 JavaScript 可以在所有主流浏览器和平台上运行,而不需要等到下个 JavaScript 版本。
全栈程序员站长
2022/09/16
1.4K0
typescript 多继承_说明类的继承和多态有什么作用
Modern Times
简而言之就是程序之中所有的操作都需要通过对象来完成。一切操作都要通过对象,也就是所谓的面向对象,在程序中对象被分成了两个部分数据和功能,以人为例,人的姓名、性别、年龄、身高等属于数据,人可以说话、走路、吃饭、睡觉这些都属于人的功能,数据在对象中被称为属性,而功能被称为方法,所以简而言之在程序中一切皆对象
冬夜先生
2021/09/22
4550
《JavaSE-第十章》之抽象类与接口
前言 前面我们已经学了继承,在继承中我们会发现,子类重写了父类的方法,最终使用的子类的方法,而父类中方法的方法体没啥用,那么是否能把它剩略呢?另一个问题就是类不能多继承,子类的功能是不方便的扩展与维护
用户10517932
2023/10/07
3350
《JavaSE-第十章》之抽象类与接口
相关推荐
TypeScript-类和接口
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档