首页 > 其他分享 >二、typescript类(二)构造函数、继承

二、typescript类(二)构造函数、继承

时间:2022-09-26 22:58:26浏览次数:57  
标签:typescript name 继承 子类 age Dog 父类 构造函数

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

 

标签:typescript,name,继承,子类,age,Dog,父类,构造函数
From: https://www.cnblogs.com/lixiuming521125/p/16732843.html

相关文章

  • 二、typescript类(三)抽象类
    abstract开头的类是抽象类:抽象类和其他类区别不大,只是不能用来创建对象 抽象类,就是被继承的类抽象类,可以添加抽象方法,抽象方法只能添加在抽象类中;1abstractclass......
  • 封装,继承,多态
    封装属性私有get/set(有时候设置安全性的判断)提高程序的安全性,保护数据隐藏代码的实现细节同意接口系统可维护增加了继承继承的本质是对某一批嘞的抽象,......
  • TypeScript:声明文件
    声明文档的作用当使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能。假如我们想使用第三方库jQuery,一种常见的方式是在html中通过<sc......
  • TypeScript:泛型
    什么是泛型泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。1函数泛型//<T>表示定义模板类型,(arg:T):T表示......
  • TypeScript:类的类型变量
    classPerson{//脱衣服privatedisrobe(){//.....}//穿衣服privatedress(){//.....}//洗操publictak......
  • TypeScript:函数
    接口中使用函数接口可以描述函数类型;为了使用接口表示函数类型,我们需要给接口定义一个调用签名。它就像是一个只有参数列表和返回值类型的函数定义。参数列表里面的每个参......
  • TypeScript:类
    一、概念简单认知类是现实世界或思维世界中的实体在计算机中的反映,它将数据(属性)以及这些数据上的操作(方法)封装在一起。对象是具有类类型的变量。类和对象是面向对象......
  • TypeScript:类型断言
    什么是类型断言有些时候,我们需要做一些“自己比编译器更清楚的知道自己在做什么”,这个时候就用到断言,告诉编译器:没错,就是这样的,就是要这么干。编译器也就假设:嗯,这个程序员......
  • TypeScript:运行环境搭建
    环境搭建1、安装node(16版本)2、全局安装TypeScript指令:npmi-gtypescript3、查看版本指令:tsc-v4.创建tsconfig.js文件指令:tsc--init 文件:{"c......
  • TypeScript:特征
    类型系统:1.TypeScript是静态类型: 类型系统按照「类型检查时机」来分类,可以分为动态类型和静态类型。动态类型是指在运行时才会进行类型检查,这种语言的类型错误往往会......