面向对象编程的三大特性

2023-10-30

面向对象编程主要体现为三个特性

(1)封装性

        面向对象编程的核心思想之一就是将数据和对数据的操作封装在一起。通过抽象,即从
具体的实例中抽取出共同的性质形成一般的概念,例如类的概念。

        Java 中属性的封装,无特殊情况都是用的 private 修饰符, 用 private 修饰符声明该属性为私有属性,只允许类的内部直接访问该属性。对于私有属性,要给一对 setter() 和 getter() 方法操作,外部访问私有属性需要通过setter() 和 getter() 方法。 setter() 和 getter() 方法 IDE 可快速生成(快捷键-alt+insert ) 。

(2)继承

        继承体现了一种先进的编程模式。子类可以继承父类的属性和行为,即继承父类所具有的数据和数据上的操作,同时又可以增添子类独有的数据和数据上的操作。例如,“人类”自然继承了“哺乳类”的属性和行为,同时又增添了人类独有的属性和行为。

(1)格式calss A extends calss B        (2)一个类可以被多个类继承,但一个类只能拥有一个直接父类,父类的父类称之为间接父类,也就是多层继承,不过父类的父类也只能有一个。  (3)当没有显式继承时,类默认继承类:java.lang.Object类,该类是根父类,所有的类的直接或间接的父类。

(3)多态

        多态是面向对象编程的又一重要特征。有两种意义的多态。一种多态是操作名称的多态,即有多个操作具有相同的名字,但这些操作所接收的消息类型必须不同。例如,让一个人执行 “求面积”操作时,他可能会问你求什么面积?所谓操作名称的多态性,是指可以向操作传递不同消息,以便让对象根据相应的消息来产生相应的行为。另一种多态是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为。例如,狗和猫都具有哺乳类的行为“喊叫”。但是,狗操作“喊叫”产生的声音是“汪汪,”而猫操作“喊叫”产生的声音是“喵喵”。

多态的三个条件:

a) 继承的存在(继承是多态的基础,没有继承就没有多态).
b) 子类重写父类的方法(多态下调用子类重写的方法).
c) 父类引用变量指向子类对象(子类到父类的类型转换).

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

面向对象编程的三大特性 的相关文章

随机推荐

  • Java之反射机制(获取Class对象的三种方式)

    Java之反射机制 获取Class对象的三种方式 开发工具与关键技术 MyEclipse 10 java 作者 刘东标 撰写时间 2019 06 14 如何得到各个字节码对应的实例对象 每个类被加载后 系统会为该类生成对应的 Class对象
  • 英特尔正式宣布于2021年推7奈米制程芯片

    英特尔 Intel 在近日举行的投资人会议上揭露了该公司的产品规画 宣布将于2021年推出7奈米制程芯片 以对抗台积电的5奈米制程产品 今年英特尔力推的Ice Lake微架构仍是基于10奈米制程 宣称预计于6月出货的Ice Lake客户端产
  • 基于卷积神经网络的高光谱分类 CNN+高光谱+印度松数据集

    基于卷积神经网络的高光谱分类 一 研究现状 只考虑到高光谱图像的光谱特征 即 1 提取特征 小波变换 Gabor纹理分析 形态学剖面 2 利用分类方法分类 支持向量机 决策树 随机森林 神经网络 缺点 这些特征提取方法需要依据先验知识手动设
  • 【YOLOv5 数据集划分】训练和验证、训练验证和测试(train、val)(train、val、test)

    YOLOv5 数据集划分 训练和验证 训练验证和测试 train val train val test 在已有测试集的情况下划分训练集和验证集 将图片和标注数据按比例切分为 训练集和测试集 import shutil import rand
  • ORACLE 根据分组排序产生序列号

    对应的语法是这样的 select row number over partition by col1 order by col2 seq 具体的场景如下 如果一张表中保存了整个年级的各个班级每个同学的语文成绩 create table Sc
  • Linux系统常用命令

    操作系统 作用 是管理好硬件设备 并为用户和应用程序提供一个简单的接口 以便于使用 作为中间人 连接硬件和软件 linux 安全 稳定 免费 占有率高 嵌入式操作系统 linux发展历程 unix gt minix gt linux 发行版
  • 自定义oh-my-zsh主题风格,代码和语法的解释

    自定义oh my zsh主题风格 代码和语法的解释 摘要 简要介绍 zsh theme的代码 不涉及函数 关键词 ohmyzsh zsh theme语法 https github com ohmyzsh ohmyzsh wiki Theme
  • ubuntu20.04为AppImage创建快捷启动器

    前言 作为一名java开发者 平时用得到的一些开源的或者实用的开发工具 他们有的都是打包为AppImage格式 这种格式的优越性在于它是临时挂载在我们的文件系统上以便运行 使用这种方法 开发人员可以将他们的应用程序打包到一个 AppImag
  • Kotlin和Android:一种语言背后的JetBrains和Google

    Google I O 2017 宣布了几项重要公告 但对我而言 最有趣的一个是Android上的 对Kotlin的一流支持 关于此公告的Kotlin博客文章讨论了这给Kotlin用户带来的好处 如果您担心Kotlin支持的其他平台 服务器和
  • React-Native开发中常用的第三方控件持续更新

    十一假期已经过去了 今天正式开工了 这里的文章我会持续进行更新 希望为开发的小伙伴们提供点帮助 如果能帮到你们 我就心满意足了 十一假期学习撸了一个小程序 欢迎各位朋友进行关注 代码已经在gitHub上开源 清风天气 清风天气 2018 1
  • python三种基本数据类型_python基础数据类型

    python常用的数据类型包括整型 int 字符串 str 布尔值 bool 列表 list 元组 tuple 字典 dict 集合 set 整型 int int操作方法 bit length 就是查看十进制数转换成二进制在内存中占用了多少
  • 第三届阿里云磐久智维算法大赛——GRU BaseLine

    赛题 比赛链接 第三届阿里云磐久智维算法大赛 天池大赛 阿里云天池 aliyun com 大赛概况 庸医只知头痛医头脚痛医脚 凡良医者 必会抽丝剥茧 察其根本 方得药到病除 第一届和第二届磐久智维算法大赛 我们针对异常预测开展了积极的探索和
  • QGIS3.10编译指南

    下载所需要软件 安装VS2015以及版本5以上的QT 根据我的电脑环境 我使用vs2015 x64 和 QT5 10 1版本 并将QT配置到VS上 安装CMake 有需要的再额外安装Python37 安装doxyden 除VS默认加入环境路
  • web服务器压力测试工具---ab

    文章目录 写在前面 1 吞吐率 Requests per second 2 并发连接数 The number of concurrent connections 3 并发用户数 The number of concurrent users
  • C++之虚函数

    都说面向对象的三大特性是封装 继承 多态 C 作为一门面向对象编程语言 肯定也是具备了面向对象的三大特性 那么在C 中是如何实现多态的呢 在C 中是通过虚函数动态绑定的方式实现多态的 虚函数与纯虚函数 首先我们来回顾一下虚函数 在C 中是使
  • Vue3 defineProp传参以及defineEmits事件传递详细解释

    defineProp父子组件传参 vue3中引用另一个组件非常简单 不再需要设置各个组件的name 直接import导入即可 下方代码 父组件为PropSuper vue 子组件为PropBase vue
  • [关系图谱] 二.Gephi导入共线矩阵构建作者关系图谱

    本文主要讲解Gephi绘制作者间的关系图谱 该软件可以广泛应用于社交网络 知识图谱分析 推荐读者使用 这是非常基础的一篇文章 重点讲解Gephi使用方法 希望对大家有所帮助 推荐前文 python数据挖掘课程 十七 社交网络Networkx
  • 算法知识点

    维生素C吃多了会上火 个人CSDN博文目录 2022蓝桥杯 目录 语法 基础算法 提升算法 语法 指针 标准输入输出 队列 结构体 c STL 基础算法 排序算法 树 二叉树 提升算法
  • Ping工具ICMP报文学习

    首先 这里有一个很好的博客 入口 先说个结论 Ping是通过IP ICMP协议发出去的 这跟我们传统UDP和TCP不一样 其通过创建套接字直接从IP层接受数据 具体可以参照上述文档 为什么ICMP的ping和tracert不经过tcp或ud
  • 面向对象编程的三大特性

    面向对象编程主要体现为三个特性 1 封装性 面向对象编程的核心思想之一就是将数据和对数据的操作封装在一起 通过抽象 即从 具体的实例中抽取出共同的性质形成一般的概念 例如类的概念 Java 中属性的封装 无特殊情况都是用的 private