Js:面向对象的特点

news/2025/1/8 17:56:36/

一、封装:安全性

https://www.bilibili.com/video/BV1mG411h7aD?spm_id_from=333.788.player.switch&vd_source=d88f9fa9e66ff0846d79ff1483b7a0d4&p=77

二、继承:扩展性

可以通过 extends 关键字实现继承

1、减少重复的代码:

javascript">class Animals { // 父类(超类)constructor(name,age){this.name = name;this.age = age;}run(){console.log('跑')}
}class Dog extends Animals { // 子类,将 Animals 类中的代码复制到 Dog 类中
}
class Cat extends Animals { // 子类,将 Animals 类中的代码复制到 Cat 类中
}let dog = new Dog('大黄',2)
let cat = new Cat('喵喵',3)
console.log(dog)
console.log(cat)

2、在不修改一个类的情况下,对其进行扩展: OCP原则

重写父类中的方法

javascript">// 父类(超类)
class Animals {constructor(name,age){this.name = name;this.age = age;}run(){console.log('跑')}
}
// 子类
class Dog extends Animals {// 定义一个和父类同名的函数,来重写父类中的方法run(){console.log('狗狗在跑')}
}
class Cat extends Animals {// 定义一个和父类同名的函数,来重写父类中的方法run(){console.log('猫猫在跑')}
}let dog = new Dog('大黄',2)
let cat = new Cat('喵喵',3)
dog.run()
cat.run()

重写父类的构造函数 / 在子类的构造函数中新增属性

javascript">// 父类(超类)
class Animals {constructor(name,age){this.name = name;this.age = age;}run(){console.log('跑')}}// 子类class Dog extends Animals {constructor(name,age,gender){// 重写构造函数时,构造函数的第一行必须是super()super(name,age) // 调用父类的构造函数,并且将原本的参数传入this.gender = gender}}class Cat extends Animals {// 定义一个和父类同名的函数,来重写父类中的方法run(){console.log('猫猫在跑')// 调用父类中的方法super.run()}}let dog = new Dog('大黄',2,'公') // 前两个参数传给了父类的构造函数let cat = new Cat('喵喵',3)console.log(dog)cat.run()

三、多态:给代码提供了灵活性

多态是指参数的多态,即很多个对象都可以调用同一个方法。在该方法中,不对入参的类型进行限制,只需要满足某些条件,就能够返回不同的值。


http://www.ppmy.cn/news/1561610.html

相关文章

AWS DMS基础知识

1.AWS Database Migration Service (DMS) 概述 AWS DMS 定义:它能助力以最少停机时间把数据库迁移至 AWS,支持同构(如 Oracle 到 Oracle)、异构(如 Oracle 到 PostgreSQL )迁移。常…

【Qt】主窗口

目录 Qt主窗口的构成 菜单栏 创建菜单栏 向菜单栏中添加菜单 向菜单中添加菜单项 工具栏 创建工具栏 工具栏的停靠位置 工具栏的浮动属性 工具栏的移动属性 状态栏 创建状态栏 向状态栏中添加的信息 浮动窗口 浮动窗口的停靠位置 向浮动窗口中添加控件 Qt主窗口的…

unity学习14:unity里的C#脚本的几个基本生命周期方法, 脚本次序order等

目录 1 初始的C# 脚本 1.1 初始的C# 脚本 1.2 创建时2个默认的方法 2 常用的几个生命周期方法 2.1 脚本的生命周期 2.1.1 其中FixedUpdate 方法 的时间间隔,是在这设置的 2.2 c#的基本语法别搞混 2.2.1 基本的语法 2.2.2 内置的方法名,要求更严…

今日头条ip属地根据什么显示?不准确怎么办

在今日头条这样的社交媒体平台上,用户的IP属地信息对于维护网络环境的健康与秩序至关重要。然而,不少用户发现自己的IP属地显示与实际位置不符,这引发了广泛的关注和讨论。本文将深入探讨今日头条IP属地的显示依据,并提供解决IP属…

Java后端常用的4种请求方式(通俗易懂)

文章目录 前言通用接口类(ControllerDemo)通用实体类(UserEntity)通用响应类(HttpClientResult)成功截图(先启动项目,然后右键执行main方法) HttpClientHttpClient 的主要类代码案例导入依赖工具类(HttpClientUtil)测试类 HttpURLConnection简介调用步骤代码案例导入依赖工具类…

Python多分类Logistic回归详解与实践

在机器学习中,Logistic回归是一种基本但非常有效的分类算法。它不仅可以用于二分类问题,还可以扩展应用于多分类问题。本文将详细介绍如何使用Python实现一个多分类的Logistic回归模型,并给出详细的代码示例。 一、Logistic回归简介 Logist…

亚矩阵云手机:跨境出海直播的全方位利器

在跨境出海直播领域,亚矩阵云手机扮演着举足轻重的角色,为跨境业务中面临的诸多挑战提供了行之有效的解决方案。以下将对其作用与解决方案展开详细阐述。 一、亚矩阵云手机在跨境出海直播中的关键作用 (一)突破地域限制&#xff0…

英伟达 RTX 5090 显卡赋能医疗大模型:变革、挑战与展望

一、英伟达 RTX 5090 与 RTX 4090 技术参数对比 1.1 核心架构与制程工艺 在探讨英伟达 RTX 4090 与 RTX 5090 的差异时,核心架构与制程工艺无疑是最为关键的基础要素,它们从根本上决定了两款显卡的性能上限与应用潜力。 1.1.1 核心架构差异 RTX 4090…