ts 多态

作者: 暴躁程序员 | 来源:发表于2022-05-23 15:51 被阅读0次
  1. 定义:为不同数据类型的实体(子类实体)提供统一的接口(父类类型的引用)
  2. 示例:函数的形参只写父类引用(统一参数),且此函数接受父类实例对象和任意子类实例对象,以此来统一按需调用不同的类的相同方法
// 创建 父类
class Person {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  say(): void {
    console.log(this.name);
  }
}

// 创建 子类一
class Student extends Person {
  age: number;
  constructor(age: number, name: string) {
    super(name);
    this.age = age;
  }
  say(): void {
    console.log(this.name + this.age);
  }
}
// 创建 子类二
class Teacher extends Person {
  grade: string;
  constructor(grade: string, name: string) {
    super(name);
    this.grade = grade;
  }
  say(): void {
    console.log(this.name + this.grade);
  }
}

// 常规:父类类型引用指向父类实例
let person: Person = new Person("人");

// 多态一:父类类型引用指向子类实例对象
let xiaoming: Person = new Student(18, "小明");

// 多态二:父类类型引用指向子类实例对象
let mrZhang: Person = new Teacher("高二", "张老师");

// 多态的作用:不同类型的对象(必须是父子关系)针对相同的方法,产生了不同的行为
function sayWhat(who: Person) {
  who.say(); // 执行共有的方法
}

sayWhat(person); // 传入 父类实例对象
sayWhat(xiaoming); // 传入 子类实例对象
sayWhat(mrZhang); // 传入 子类实例对象

相关文章

  • ts 多态

    定义:为不同数据类型的实体(子类实体)提供统一的接口(父类类型的引用) 示例:函数的形参只写父类引用(统一参数),...

  • 5、Typescript 静态成员、抽象类、多态

    ts 类中提供了:静态成员、抽象类、多态 案例:

  • typescript 学习第三天

    一 ts中的静态方法与静态属性 static 二 ts中的多态 1.父类定义一个方法不去实现,让继承他的子类去实现...

  • TypeScript04--类

    类的三大特性: 封装,继承,多态(这个概念没什么好说的,本文会对比ts与es5,es6语法上的区别) 封装:...

  • vue3中常用工具类(自用)

    observer.ts setRem.ts usePagePosition.ts loadDevTools.ts ...

  • Egret白鹭引擎 H5时钟

    //TypeScript和Egret Main.ts Sec.ts Min.ts Hour.ts Pan.ts 文件目录

  • Typescript体系

    TS是什么 为什么要用TS TS能干什么 社区发展 周边生态 深入理解TS 接受TS 权衡 TS是什么 为什么要用...

  • 1.9 多态基本概念

    本小节知识点: 【了解】什么是多态? 【掌握】多态的条件 【了解】多态的优点 1.什么是多态? 什么是多态:多态就...

  • C++ 的多态(Polymorphism), virtual f

    多态 c++支持两种多态,编译时多态和运行时多态但其实编译时多态根本不是真正的多态,编译时多态就是函数的重载,ov...

  • 详解Java多态

    详解Java多态 多态定义 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态...

网友评论

      本文标题:ts 多态

      本文链接:https://www.haomeiwen.com/subject/xdirprtx.html