封装继承多态理解

2023-11-04

1. 封装的概念
在面向对象中封装是指隐藏对象的属性和实现的细节,仅对外提供公共访问方式,是一种信息隐藏技术,在java/c#中通过关键字private,protected和public实现封装。封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。

封装的好处: 把类的细节与外界隔离起来,从而实现数据项和方法的隐藏。
只允许外部对类作有限的访问,开发者可以改变类内部的工作方式而不用担心会影响到客户端程序员,只要向外部暴露出来的接口不改变,内部代码就可以自由改变,而不对使用该类的程序产生影响。这是隔离性的体现,同时也是实现高内聚,低耦合的最根本的思想之一。

2.继承

在 Java 中子类使用关键词 extend 去继承父类的关系(C#直接:父类)

继承主要用途是将子类存在共性的东西,把它抽取出来放到父类里面,比如将共同拥有的属性和方法抽取出来放到父类里面。

继承的好处:

想要使用这些属性和方法的时候,可以直接去使用父类的,而不需要自己再重新去定义,更大程度的实现代码复用。

我们不需要写很多的冗余的代码,把共性的全部抽到父类,可以直接调用,如果需要个性化自定义子类的方法时,去重写父类的方法即可。

3.多态

多态是指通过指向父类的指针,来调用在不同子类中实现的方法。

多态是和继承一脉相承的,多态存在的需要有三个必要条件:继承、重写、父类引用指向子类对象

例子1:什么是面向对象? 谈谈你对面向对象的理解_魏来码农的博客-CSDN博客_面向对象的理解

个人理解翻译:调用地方的方法名是一样的,但方法返回的是子类的输出而不是父类的。

例子2: Java 多态 ——一个案例 彻底搞懂它 - 江河湖泊 - 博客园

例子理解翻译:多态为何能提高代码可扩展性,复用性呢。上面例子,如果再加上猪这个动物,现在就只加猪相关子类即可,方法名没变、其他动物的代码没变(起码这个文件没有git修改记录)、父类也没变。

方便个人学习,无心侵权。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

封装继承多态理解 的相关文章

随机推荐

  • 主成分分析PCA,(主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征)

    I 清空环境变量 PCA BP I 清空环境变量 clear all clc 导入数据 X xlsread inputd PCA主成分降维 Z MU SIGMA zscore X 计算相关系数矩阵 Sx cov Z 相关系数矩阵计算 计算相
  • 养老院人员定位手环真的如此智能?老人定位手环当然很智能-新导智能

    养老院人员定位手环为 新冠疫情 患者 护理院和养老院等老人和特别人员等在现有的基础上去掉心率 增加手臂体表温度检测 丈量1分钟 24小时能够自在调整 并经过低功耗NB IoT网络上签到后台 也能够外界蓝牙温度计 血糖仪或其他外设 上签到后台
  • 【Qt】qml TreeView的简单使用

    主要参考了官方demo Simple Tree Model Example 借鉴了https blog csdn net shado walker article details 56495059中roleNames 函数的写法 由于官方的
  • Flink简单教学2-本地安装和运行

    下载安装包 访问官网 下载最新版本 本教程使用Flink1 9版本 目录说明 bin flink 启动的脚本文件 lib flink 运行时jar包依赖 conf flink 启动的配置 如web端口 日志配置等 example flink
  • 小米笔记本装centos无法连接wifi问题

    1 打开终端 2 打开wifi nmcli r wifi on 3 搜索wifi nmcli dev wifi 4 连接wifi nmcli d wifi connect wifi名字 password 密码 网卡名 不知道wifi网卡名称
  • 浏览器原理+跨域+解决方案

    原网址 浏览器部分笔记 浏览器不同窗口cookie共享吗 JackieChan 的博客 CSDN博客 一 浏览器存储对象 1 cookie cookie是一种纯文本文件 大小只有4kb 每次发送非跨域html请求时都会自动携带 特性如下 c
  • java基础: Date类型最常用的时间计算(相当全面)

    目录 1 前言 2 具体方法实现 2 1 获取当天的开始时间 2 2 获取当天的结束时间 2 3 获取昨天的开始时间 2 4 获取昨天的结束时间 2 5 获取明天的开始时间 2 6 获取明天的结束时间 2 7 获取本周的开始时间 2 8 获
  • [echarts]clear和dispose的区别和使用场景

    clear和dispose是echarts提供的用于解决内存溢出的方法 内存溢出 当程序运行时需要的内存超出了当前应用系统的剩余内存时 就造成了内存溢出的情况 直观表现就是 卡死 所以只要使用echarts了 最好都clear或dispos
  • 工具使用(kali linux 中 nmap msf cs docker Goby)

    docker nmap MSF CS Goby docker 一 前言 其实我个人不常使用docker 到目前为止也只是搞了个xss靶场 在这里主要是先总结总结 以后用到也就方便了 主要分为两部分 一个是docker常用的一些连招操作 希望
  • DevExpress控件显示弹出注册对话框的应对方法

    删除Properties下的license licx 目前来看是可以的
  • 记一次从日立G400划一个LUN给dg数据库

    从日立G400划一个1T的lun 映像路径给DG主机 cat proc scsi scsi 为不重启主机识别设备 echo gt sys class scsi host host1 scan echo gt sys class scsi h
  • 等保合规2022系列

    2022等保合规指南 第一篇 四个核心问答 帮你读懂 等保 等级保护制度在我国已经推广了近20年了 如下图 从等保制度的逐渐成熟 到整个制度被上升到法律高度 无一不证明了网络安全是我国网络强国战略的重要组成部分 而网络安全等级保护是落实网络
  • STM32启动文件分析(startup_stm32f10x_md.s)

    初始化堆栈 初始化栈指针 SP 初始化栈指针 SP 向量表的设置 配置系统时钟进入main 一般而言 系统上电后第一个执行的是由汇编所编写的启动文件 其主要工作为一下五部分 初始化堆栈指针SP initial sp 初始化PC指针 令其 R
  • 逻辑漏洞之越权、支付漏洞

    目录 逻辑漏洞 Web安全渗透三大核心方向 输入输出 登录体系 权限认证 业务逻辑漏洞分类 1 登录体系安全 暴力破解 cookie安全 加密测试 登录验证绕过 任意注册 2 业务一致性安全 手机号篡改 邮箱和用户名更改 订单ID更改 商品
  • Linux操作系统入门

    Linux操作系统入门 一 入门概述 我们为什么要学习Linux linux诞生了这么多年 以前还喊着如何能取代windows系统 现在这个口号已经小多了 任何事物发展都有其局限性都有其天花板 就如同在国内再搞一个社交软件取代腾讯一样 想想
  • Hadoop3x高可用集群配置手册

    集群规划 本次安装拟使用的各软件版本如下 CentOS 7 6 Zookeeper 3 6 3 Hadoop 3 2 2 Hive 3 1 2 Spark 3 0 2 Sqoop 1 4 7 MySQL 8 0 21 机器规划 机器名称 z
  • CentOS7下python开发环境配置

    https blog csdn net nicomy2018 article details 78617976 configure prefix usr local
  • 内网DNS域名解析 blocky服务

    此片文章为DNS内网解析部署文档 简单实用 解决企业内部web服务IP地址访问问题 企业内部如果不启用域名DNS服务 服务器就只能通过IP进行访问了 除了传统的bind解决方案 推荐一个新的DNS解决方案 blocky blocky 的Gi
  • Oracle listagg去重distinct的三种方式总结

    一 简介 最近在工作中 在写oracle统计查询的时候 遇到listagg聚合函数分组聚合之后出现很多重复数据的问题 于是研究了一下listagg去重的几种方法 以下通过实例讲解三种实现listagg去重的方法 二 方法 首先还原lista
  • 封装继承多态理解

    1 封装的概念 在面向对象中封装是指隐藏对象的属性和实现的细节 仅对外提供公共访问方式 是一种信息隐藏技术 在java c 中通过关键字private protected和public实现封装 封装实际上使用方法将类的数据隐藏起来 控制用户