首页 > 其他分享 >aardio 实现封装继承多态

aardio 实现封装继承多态

时间:2024-05-26 18:43:59浏览次数:16  
标签:function console name .. aardio 多态 封装 ctor log

//Car 实现封装继承多态

import console


//父类
class Car{
    ctor(make, model, color, year) {//构造函数,用于初始化对象的属性
        this.make = make //制造商
        this.model = model //型号
        this.color = color //颜色
        this.year = year //年份

    }
    
    startEngine = function() {//方法:启动引擎
        ..console.log("引擎启动了!")
    }
    
    accelerate = function() {//方法:加速
        ..console.log("车辆加速了!")
    }
    
    brake = function() {//方法:刹车
        ..console.log("车辆刹车了!")
    }
    
    describe = function() {// 方法:描述车辆信息
        ..console.log("这是一辆 " + this.year + " 年的 " + this.make + ",其型号为 " + this.model + ",颜色为 " + this.color + ".")
    }
}

//基类
class BMW{
    ctor(model, color, year){
        this = ..Car("宝马", model, color, year);    //继承Car类
    }
}

myCar = BMW("X3", "红色", 2020)
myCar.describe()
myCar.startEngine()
myCar.accelerate()
myCar.brake()



//父类
class Person{
    ctor(name, age) {
        this.name = name
        this.age = age
    }

    sayHello = function() {
        ..console.log("大家好,我叫 " + this.name + ", 我今年 " + this.age + " 岁。")
    }
}

//基类
class Student{
    ctor(name, age, grade) {
        this = ..Person(name, age)
        this.grade = grade
    }

    study = function() {
        ..console.log(this.name + " 正在学习,他现在 " + this.grade + "年级。")
    }
}

student = Student("小明", 10, 5)
student.sayHello()
student.study()




//封装
class Animal{
    ctor(name) {
        this.name = name
    }

    eat = function() {
        ..console.log(this.name + " is eating.")
    }
}

//继承
class Carnivore{
    ctor(name) {
        this = ..Animal(name)
    }

    eat = function() {
        ..console.log(this.name + " is eating meat.")
    }
}

//多态
class Herbivore{
    ctor(name) {
        this = ..Animal(name)
    }

    eat = function() {
        ..console.log(this.name + " is eating plants.")
    }
}

var carnivore = Carnivore("Tiger")
var herbivore = Herbivore("Deer")
carnivore.eat()  // 输出 "Tiger is eating meat."
herbivore.eat()  // 输出 "Deer is eating plants."



console.pause(true)

 

标签:function,console,name,..,aardio,多态,封装,ctor,log
From: https://www.cnblogs.com/axuanup/p/18214133

相关文章

  • java —— 封装、继承、接口和多态
    一、封装封装是将数据和操作这些数据的方法整合成一个类。在这个类中,用private修饰符将某些数据隐藏起来,只通过特定的方法实现这些数据的访问和修改,以此实现数据的完整和安全性。封装的步骤:二、继承 继承是指把子类共有的某些属性或方法抽离出来,编写为父类,这样多个子类......
  • 《计算机网络微课堂》3-2 封装成帧
    ‍‍所谓封装成帧就是指数据链路层给上层交付下来的协议数据单元,添加帧头和帧尾,‍‍使之成为帧。例如下图所示在帧头和帧尾中包含有重要的控制信息,例如‍‍这是以太网版本2的MAC帧格式,这是上层交付下来的协议数据单元,这是帧头,‍‍这是帧尾,这是点对点协议PPP的帧格式,这是上......
  • OOP笔记 —— 多态(Polymorphism)
    多态就是同一个方法的不同实现(即:相同的函数名,不同的函数体)多态的精髓在于父类指针的使用:将子类的地址赋给父类指针,即父类指针指向子类对象注意:用指针去调用成员方法时,通过“->”符号1.虚函数(VirtualFunction)此处的虚函数是指非纯虚函数。定义:非纯虚函数是一个带有virt......
  • c语言函数宏的封装方式有哪几种?
    在c语言开发中,出了使用函数封装代码之外,也经常使用宏来封装一些重要或简洁的代码。宏在c开发有三种:预定义宏,不带参宏,和带参数宏。通常,带参数宏也叫函数宏,函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销,在实......
  • Vue3实战笔记(45)—VUE3封装一些echarts常用的组件,附源码
    文章目录前言一、柱状图框选二、折线图堆叠总结前言日前使用hooks的方式封装组件,在我使用复杂的图标时候遇到了些问题,预想在onMounted中初始化echarts,在使用hooks的时候,组件没有渲染完,使用实例会出现各种各样的问题,并且在hooks中使用一些外部属性也属实遇到了些麻烦......
  • React后台管理(九)-- 页面开发前准备---Outlet布局组件封装
    文章目录前言一、组件源码+解析如下二、页面使用方式三、效果展示总结前言本文主要讲Outlet子路由渲染区域—>结构布局的封装。其中涉及的全局搜索hook函数,后面会单独拎出来讲,这期可先忽略,关注布局即可。一、组件源码+解析如下//@/layout/list/index.jsximport......
  • Vue3实战笔记(43)—Vue3组合式API下封装可复用ECharts图表组件
    文章目录前言一、封装echart图标钩子二、使用步骤总结前言接上文,已经安装好了ECharts,开始封装组件方便使用。一、封装echart图标钩子首先应用我们之前学习的钩子方式,在hooks目录下创建一个名为useECharts.js的文件,用于封装ECharts的逻辑:import{ref,onMo......
  • Go实战全家桶之八:统一ES服务接口之通用查询嵌套查询之封装与增删改API
    开源 goweb:https://gitee.com/ichub/goweb/settings#index需求UML代码位置测试用例:func(this*TestPageEsRequestSuite)Test002_NestBoolQuery(){varreq1=Default()req1.EsShould().EsMatch("dept_name","olivere")req1.EsTerm(&q......
  • uniapp快速分享知识点,请求简单封装 登陆 ,支付 , 分享 , 短信,
    第一部份requrety请求封装 备注:关于环境配置ui选择插件安装在我的另一个帐号中前几天也经写了,这个博客就不用在写一遍了另一博客地址:https://www.cnblogs.com/ZzwWan/p/18202502module.exports=(vm)=>{//初始化请求配置uni.$u.http.setConfig((config)=>{......
  • D60SB60-ASEMI整流桥D60SB60参数、封装、尺寸
    编辑:llD60SB60-ASEMI整流桥D60SB60参数、封装、尺寸型号:D60SB60品牌:ASEMI封装:D-SB批号:2024+特性:插件、整流桥平均正向整流电流(Id):60A最大反向击穿电压(VRM):600V工作温度:-55°C~150°C恢复时间:>2000ns正向电压(Vf):1.1V浪涌电流:550A重量:7.2克引脚数量:4芯片个数:4芯片尺寸......