恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

TypeScript总结:16、面向对象速查

  • 首页
  • 资讯中心
  • /
  • TypeScript总结:16、面向对象速查

相关资讯

从One-Hot到动态Embedding:AI文本表示技术演进与实战指南 2026/8/15 10:02:23
数据中心社区冲突:资源消耗、社会许可与可持续基础设施的未来 2026/8/15 10:02:23
硬字幕提取不花钱:VSE 帮你 3 分钟把视频字幕变成 SRT 文件 2026/8/15 10:02:23

最新资讯

免费开源抖音批量下载工具:5分钟告别水印,一次收藏整个创作者主页
Mapshaper 地理数据处理实战指南:一条命令解决格式转换、地图简化与批量优化
复杂语义准确率93%、合规管控效率+300%:岚图汽车如何用中关村科金得助智能质检重构服务质检体系?
CAD 优化:跳过 AcConnectWebServices.arx 加载
XSS漏洞防御全解析:从原理到实战
Nix 语言惰性特性揭秘:竟能让包管理器玩《超级马里奥兄弟 3》!

今日推荐

内景 空间站内部 中国空间站 太空 内仓
重新定义数据接口:3个突破性场景让通达信数据读取更智能
5大网络安全实操平台,免费练手入门,轻松掌握攻防技能

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

TypeScript总结:16、面向对象速查

发布时间:2026/8/15 10:02:23
TypeScript总结:16、面向对象速查 面向对象速查TypeScript 面向对象部分可以归纳为四个关键词类、封装、继承和抽象。接口与泛型则进一步帮助我们描述结构和复用类型逻辑。一、类的基本模板classPerson{name:string;age:number;constructor(name:string,age:number){this.namename;this.ageage;}sayHello():void{console.log(大家好我是this.name);}}constpersonnewPerson(孙悟空,18);person.sayHello();成员作用属性保存对象数据构造函数创建实例时初始化数据方法描述对象行为this表示当前实例new创建类的实例二、访问修饰符修饰符当前类子类类外部public可以访问可以访问可以访问protected可以访问可以访问不可以访问private可以访问不可以访问不可以访问示例classUser{publicname:string;protectedrole:string;privatepassword:string;constructor(name:string,role:string,password:string){this.namename;this.rolerole;this.passwordpassword;}}建议默认公开的成员才使用public。只允许子类使用的成员使用protected。内部实现细节使用private。三、readonly、getter 和 setterreadonlyclassUser{readonlyid:number;constructor(id:number){this.idid;}}readonly属性初始化后不能重新赋值。getter 和 setterclassPerson{private_name:string;constructor(name:string){this._namename;}getname():string{returnthis._name;}setname(value:string){if(value.trim()){this._namevalue;}}}记忆方式get读取属性。set修改属性。四、静态成员classMathTools{staticPI3.1415926;staticsum(a:number,b:number):number{returnab;}}console.log(MathTools.PI);console.log(MathTools.sum(1,2));静态成员属于类本身通过类名访问不需要创建实例。五、继承和方法重写classAnimal{constructor(publicname:string){}run():void{console.log(this.name正在跑);}}classDogextendsAnimal{bark():void{console.log(this.name在汪汪叫);}overriderun():void{console.log(狗正在跑);}}constdognewDog(旺财);dog.run();dog.bark();关键语法语法作用extends继承父类super(...)调用父类构造函数super.method()调用父类方法override明确表示重写父类成员六、抽象类abstractclassAnimal{abstractrun():void;bark():void{console.log(动物在叫);}}classDogextendsAnimal{run():void{console.log(狗在跑);}}抽象类的特点不能直接实例化。可以包含普通属性和普通方法。可以包含抽象方法。子类必须实现抽象方法。七、接口描述对象结构interfacePerson{name:string;sayHello():void;}functiongreet(person:Person):void{person.sayHello();}类实现接口classStudentimplementsPerson{constructor(publicname:string){}sayHello():void{console.log(我是this.name);}}implements只负责检查结构不会自动生成接口中的属性和方法。八、泛型泛型函数functionidentityT(value:T):T{returnvalue;}identity(100);identity(hello);泛型类classBoxT{constructor(publicvalue:T){}}constnumberBoxnewBox(100);conststringBoxnewBox(hello);泛型约束interfaceHasLength{length:number;}functiongetLengthTextendsHasLength(value:T):number{returnvalue.length;}九、接口、抽象类和普通类的区别类型主要作用能否包含具体实现能否直接实例化接口描述结构和契约不能不能抽象类提供通用模型和部分实现可以不能普通类创建具体对象可以可以十、面向对象设计建议类负责描述对象状态和行为。不要把所有属性都公开优先保护内部状态。父类放公共逻辑子类放具体差异。只需要约束结构时优先考虑接口。需要共享实现时再考虑抽象类或继承。重复的类型逻辑优先使用泛型。十一、本章小结类解决对象创建和行为组织问题。封装解决属性访问和数据保护问题。继承解决公共逻辑复用问题。抽象类解决通用模型和强制实现问题。接口解决结构约束问题。泛型解决类型安全的代码复用问题。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号