二、typescript类(二)构造函数、继承
constructor构造函数:
会在对象创建时调用,可以自定义对象的值
1 class Dog{ 2 name:string; 3 age:number; 4 bark(){ 5 alert("汪!"); 6 console.log(this.name);//在方法中可以通过this来表示当前调用方法的对象 7 } 8 /** 9 * constructor构造函数: 10 * 会在对象创建时调用 11 */ 12 constructor(name:string,age:number){ 13 //在实例方法中,this就表示当前实例 14 //在构造函数中,当前对象就是当前新建的对象 15 //可以通过this向新建的对象添加属性; 16 this.name=name; 17 this.age=age; 18 } 19 } 20 21 const dog_black = new Dog("小黑",2); 22 const dog_white = new Dog("小白",4); 23 console.log(dog_black); 24 dog_black.bark();
继承:
- 定义一个表示狗(Dog)的类;
- Dog类继承Animal类;
- Animal 被称为 父类,Dog被称为子类,子类将拥有父类的属性和方法
- 通过继承可以将多个类中共有的代码写在一个父类中,这样需要写一次即可让所有的子类都同时拥有父类的所有属性和方法n;
- 如果希望在子类中添加一些父类中没有的方法和属性,直接添加即可;
- 如果子类中添加了和父类相同的方法,则子类方法会覆盖父类的方法,这种形式也叫重写
Animal类 & Dog类:
1 class Animal { 2 name: string; 3 age: number; 4 bark() { 5 alert("动物在叫"); 6 } 7 8 constructor(name: string, age: number) { 9 this.name = name; 10 this.age = age; 11 } 12 }
1 class Dog extends Animal{ 2 3 }
Dog拥有Animal所有属性和方法也可以;
const dog = new Dog("旺财",12); dog.bark();
继承的应用
- 如果向在子类中调用父类方法?
- 在子类中覆盖父类的方法?
- 在子类中重新添加方法?
1 class Dog extends Animal{ 2 run(){ 3 console.log("run") 4 } 5 bark(): void { 6 //super表示当前类的父类 7 super.bark();//调用父类方法 8 } 9 constructor(name:string,age:number){ 10 //如果在子类中写了构造函数,此时,在子类的构造函数中必须对父类的构造函数进行调用 11 super(name,age); 12 } 13 14 }
调用:
const dog = new Dog("旺财",12); dog.bark(); dog.run();
博客园地址:https://www.cnblogs.com/lixiuming521125/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!