首页 > 其他分享 ># 类与接口

# 类与接口

时间:2023-12-26 16:57:43浏览次数:523  
标签:console log 接口 interface sing name

类与接口

前几篇博客说过,接口(Interfaces)可以用于对「对象的形状(Shape)」进行描述。现在主要介绍接口的另一个用途,对类的一部分行为进行抽象。

类实现接口

实现(implements)是面向对象中的一个重要概念。一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有的特性,这时候就可以把特性提取成接口(interfaces),用 implements 关键字来实现。这个特性大大提高了面向对象的灵活性。

基本案例

interface ISing {
  // 这个方法是没有任何实现的
  sing();
}

interface IDance {
  // 这个方法是没有任何实现的
  dance();
}


class P implements ISing { // 人  会唱歌、跳舞
  sing() {
    console.log('人会唱歌');
  }
}

class A implements ISing { // 动物  会唱歌、跳舞
  sing() {
    console.log('动物会唱歌');
  }
}

const per = new P();
const an = new A();
per.sing();
an.sing();

看一下编译完成后的执行结果:

在这里插入图片描述

如果需要通过多个接口约束类,只需要使用逗号分割即可:

interface ISing {
  // 这个方法是没有任何实现的
  sing();
}

interface IDance {
  // 这个方法是没有任何实现的
  dance();
}


class P implements ISing, IDance {  // 人  会唱歌、跳舞
  dance() {
    console.log('人跳舞')
  } 
  sing() {
    console.log('人会唱歌');
  }
}

class A implements ISing, IDance { // 动物  会唱歌、跳舞
  dance() {
    console.log('动物跳舞')
  } 
  sing() {
    console.log('动物会唱歌');
  }
}

const per = new P();
const an = new A();
per.sing();
an.sing();
per.dance()
an.dance()

看一下编译完成后执行结果:

在这里插入图片描述

接口继承

接口与接口之间可以是继承关系:

// 接口继承接口

interface IRun {
  run()
}

interface IWalk {
  walk()
}

// 接口继承其他接口
interface IActive extends IRun, IWalk {}

class I implements IActive {
  run() {
    console.log("run");
  }
  walk() {
    console.log("walk");
  }
}

const i = new I();
i.run()
i.walk()

编译完成后,看一下执行结果:

在这里插入图片描述

接口继承类

常见的面向对象语言中,接口是不能继承类的,但是在 TypeScript 中却是可以的。

为什么 TypeScript 会支持接口继承类呢?实际上,当我们在声明一个类时,除了会创建一个类之外,同时也创建了一个类型(实例的类型)。所以我们既可以将它当做一个类来用(使用 new 类名 创建它的实例),也可以将它当做一个类型来用(使用 : 类型当作参数的类型)

案例:

// 创建一个类
class NewPerson {
  name: string
  constructor(name: string) {
    this.name = name
  }
  sayHi(){
    console.log(`Hi, ${this.name}!`) // 正确
  }
}
// 接口继承类
interface IPerson extends NewPerson {
  age: number
}
// 实例化对象
let person1: IPerson = {
  name: '我是ed.',
  age: 25,
  sayHi() {
    console.log(`你好,${this.name}! 今年${this.age}岁了!`)
  }
}
person1.sayHi()

保存编译,查看一下运行结果:

在这里插入图片描述

标签:console,log,接口,interface,sing,name
From: https://www.cnblogs.com/wjw1014/p/17928493.html

相关文章

  • java接口自动化系列(01):自动化测试框架设计(入门版)
     前言想必很多测试小伙伴自动化都是用的python吧?从当前测试招聘要求可以看到,测试开发就是全栈要求,要想在职场有竞争力,就得多个技术方向逐个提升;而和自动化、测开、性能、白盒等都相关的语言就是java,当然,这是基于很多公司项目是java来说的,毕竟Java已经发展了近20年,丰富的周边框架打......
  • java接口自动化系列(02):测试数据文件设计
    说明本次分享的是测试数据存excel中,后续分享测试数据存yaml中常用数据用例数据频繁使用到的值,我们可以放到一个变量中,这样避免修改值的时候大面积修改示例sheet名称:variables解释:标题行每个单词首字母大写,因为代码里面反射会用到解释:字段数据Name:变量名,#{xxx}整体表示变量名Value:变......
  • Taurus .Net Core 微服务开源框架:Admin 插件【4-6】 - 配置管理-Mvc【Plugin-Doc 接口
    前言:继上篇:Taurus.NetCore微服务开源框架:Admin插件【4-5】-配置管理-Mvc【Plugin-Admin后台】本篇继续介绍下一个内容:系统配置节点:Mvc- Plugin- Doc 接口测试及文档:配置界面如下:  配置说明如下:1、Doc.IsEnable:配置当前接口测试文档插件是否可用这是一个......
  • 好用的接口自动化测试工具
    Apipost提供可视化的API自动化测试功能,使用Apipost研发人员可以设计、调试接口,测试人员可以基于同一数据源进行测试,Apipost接口自动化功能在上次更新中进行了逻辑调整,带来更好的交互操作、更多的控制器选择,同时新增同步接口模式选择、测试数据选择功能。添加接口使用Apipost,研发......
  • 做接口测试的流程一般是怎么样的?UI功能6大流程、接口测试8大流程这些你真的全会了吗?
    在讲接口流程测试之前,首先需要给大家申明下:接口测试对于测试人员而言,非常非常重要,懂功能测试+接口测试,就能在企业中拿到一份非常不错的薪资。这么重要的接口测试,一般也是面试笔试必问。为方便大家更好的记住接口测试流程,先给大家普及下最常见的UI功能测试流程,然后找接口和功能两......
  • 使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的
    在前面随笔《在Winform应用中增加通用的业务编码规则生成》,我介绍了基于Winform和WPF的一个通用的业务编码规则的管理功能,本篇随笔介绍基于后端WebAPI接口,实现快速的Vue3+ElementPlus前端界面的开发整合,同样是基于代码生成工具实现快速的前端代码的生成处理。1、通用的业务编码规......
  • Map+函数式接口去掉if-else
    判断条件放在key中对应的业务逻辑放在value中这样子写的好处是非常直观,能直接看到判断条件对应的业务逻辑代码:importcom.wing.service.QueryGrantTypeService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.P......
  • Map+函数式接口去掉if-else
    判断条件放在key中对应的业务逻辑放在value中这样子写的好处是非常直观,能直接看到判断条件对应的业务逻辑代码:importcom.wing.service.QueryGrantTypeService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.P......
  • 自动化和API接口可以应用在哪些工作场景中?
    随着科技的不断进步和发展,新一代的网络安全技术也在不断涌现。其中,VMLogin指纹浏览器以其独特的自动化和API接口功能,为各行各业的网络安全和数据隐私保护提供了可靠的解决方案。一、自动化功能:任何具有重复性的工作可以在VMLogin通过自动化完成。您可以使用Selenium、Puppeteer、RE......
  • Odoo接口说明
    通过使用PostMan调用Odoo-POST{"jsonrpc":"2.0", "params":{ "db":"factory", "login":"[email protected]", "password":"1"}}通过上面Josn格式调用系统......