首页 > 其他分享 >TypeScript入门3:接口、多态

TypeScript入门3:接口、多态

时间:2024-04-30 14:24:43浏览次数:18  
标签:TypeScript name age number introduce 多态 id string 入门

//接口: 通常情况下,接⼝中只会包含属性和⽅法的声明,⽽不包含具体的实现细节,具体的细节由其实现类完成
interface Person9 {
  id: number;
  name: string;
  age: number;
  introduce(): void;
}

//实现类中,需要包含接⼝属性的赋值逻辑,以及接⼝⽅法的实现逻辑
class Student9 implements Person9 {
  id: number;
  name: string;
  age: number;

  constructor(id: number, name: string, age: number) {
    this.id = id;
    this.name = name;
    this.age = age;
  }

  introduce(): void {
    console.log('Hello,I am a student');
  }
}

class Teacher9 implements Person9 {
  id: number;
  name: string;
  age: number;

  constructor(id: number, name: string, age: number) {
    this.id = id;
    this.name = name;
    this.age = age;
  }

  introduce(): void {
    console.log('Hello,I am a teacher');
  }
}

//多态:可以使同⼀类型的对象具有不同的⾏为
let p_1: Person9 = new Student9(1, 'zhangsan', 17);
let p_2: Person9 = new Teacher9(2, 'lisi', 35);
p_1.introduce(); //Hello,I am a student
p_2.introduce(); //Hello,I am a teacher
// 同样是 Person 类型的两个对象,调⽤同⼀个 introduce() ⽅法时,表现出了不同的⾏为,这就是多态



//TS中的接⼝的特殊性:TS中的接⼝是⼀个⾮常灵活的概念,除了⽤作类的规范之外,也常⽤于直接描述对象的类型
let P_345: {name:string, age:number, gender:string} = {
  name:'张三', 
  age:10, 
  gender:'男'
};
console.log(P_345);

interface Person88 {
  name: string;
  age: number;
  gender: string;
}
let P_678: Person88 = {
  name:'张三',
  age:10,
  gender:'男'
};
console.log(P_678);

标签:TypeScript,name,age,number,introduce,多态,id,string,入门
From: https://www.cnblogs.com/yppah/p/18167932

相关文章

  • TypeScript入门2:类、继承、访问修饰符
    classPerson{//实例属性id:number;name:string;age:number=18;//构造函数constructor(id:number,name:string){this.id=id;this.name=name;}//实例方法introduce():string{return`hello,Iam${this.name},and......
  • Go语言系列——数组和切片、可变参数函数、Maps、字符串、指针、结构体、方法、接口(一
    文章目录11-数组和切片数组数组的声明数组是值类型数组的长度使用range迭代数组多维数组切片创建一个切片切片的修改切片的长度和容量使用make创建一个切片追加切片元素切片的函数传递多维切片内存优化12-可变参数函数什么是可变参数函数语法通过一些例子理解可变参......
  • Go语言系列——Go协程、信道(channel)、缓冲信道和工作池、Select、Mutex、结构体取代类
    文章目录21-Go协程Go协程是什么?Go协程相比于线程的优势如何启动一个Go协程?启动多个Go协程22-信道(channel)什么是信道?信道的声明通过信道进行发送和接收发送与接收默认是阻塞的信道的代码示例信道的另一个示例死锁单向信道关闭信道和使用forrange遍历信道23-缓冲信......
  • TypeScript入门1:注释、变量常量、数据类型、函数
    console.log('hits');//声明变量leta:number=10;//声明常量constb:number=20;//类型推断:如果⼀个变量或常量的声明包含了初始值,TS便可以根据初始值进⾏类型推断,此时可以不显式指定其类型letc=60;console.log(typeofc);//number//数字类型:整数和浮点......
  • 【Go 语言入门专栏】Go 语言的起源与发展
    前言Go语言是当下最为流行的编程语言之一,大约在2020、2021年左右开始于国内盛行,许多大厂很早就将部分Java项目迁移到了Go,足可看出其在性能方面的优越性。相信各位都知道,在爬虫业务中,并发是一个关键的需求,不然仅靠单线程采集数据,只怕公司垮了数据都还没采完。以往编写爬虫......
  • typescript
    typescriptref:https://www.runoob.com/typescript/ts-tutorial.html安装npminstall-gtypescripttsc-vapp.tsconsthello:string="HelloWorld!"console.log(hello)然后执行以下命令将TypeScript转换为JavaScript代码:tscapp.tstscfile1.tsfile2.ts......
  • HydroOJ 从入门到入土(17)批量转化其他格式题库(Python)
    新题库,新快乐,新痛苦。一、想法有了多种题库之后,常常会遇到大量题库无法转化到自己的OJ上。每次都要重新手写解析器,非常浪费时间,于是抽出了这个工具。本工具可以将抽取好的信息自动组装成符合HydroOJ格式的题目并自动压缩,解决后半部分的转化工作。二、实现1.准备包和相......
  • SQL SERVER 从入门到精通 第5版 第三篇 高级应用 第11章 触发器 读书笔记
     第11章触发器>.概述触发器是一种特殊类型的存储过程.当指定表中的数据发生变化时触发器自动生效.它与表紧密相连,可以看作表定义的一部分.触发器不能通过名称被直接调用,更不允许设置参数.在SQLSERVER中,一张表可以有多个触发器.用户可以使用INS......
  • 深入理解 C++ 中的多态与文件操作
    C++多态多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许对象在相同操作下表现出不同的行为。在C++中,多态通常通过继承和虚函数来实现。理解多态想象一个场景,你有一个动物园,里面有各种动物,如猫、狗、鸟等。每个动物都有自己的叫声。使用面向对象编程,我们可以创建一个......
  • 从零手写实现 apache Tomcat-01-入门介绍
    创作缘由平时使用tomcat等web服务器不可谓不多,但是一直一知半解。于是想着自己实现一个简单版本,学习一下tomcat的精髓。怎么实现一个tomcat呢?Tomcat就像是一个用Java语言搭起来的大舞台,专门用来演出那些用Java编写的网页剧。想要玩得转Tomcat,你最好对Java语言有所了解......