二、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();

 

posted @   啄木鸟伍迪  阅读(187)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
//火箭 GenerateContentList();

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示