谈谈Java面向对象的三大特性
Java面向对象的三大特性就是指封装、继承、多态了。
一、封装:
概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
(举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数)
好处:
将变化隔离
便于使用
提高重用性
提高安全性
封装原则:
*将不需要对外提供的内容都隐藏起来。
*把属性都隐藏,提供公共方法对其访问。
二、继承:
*继承的关系是传递的;继承简化了人们对事物的认识和描述,抽象了公共的属性和行为;
继承提高了一致性,减少程序的维护性;继承是单一继承。
*子类可以继承父类的属性和方法,但是不能继承private的成员。
好处:
*提高了代码的复用性
*让类与类之间产生了关系,给第三个特征多态提供了前提
三、多态:
字面理解,同一类事物的多种存在形态,就是一个对象对应着不同类型。
在代码中的体现,父类或者接口的引用指向其子类对象。
多态的必要条件:
1)必须是类和类之间有关系。要么继承(继承类),要么实现(实现接口)。
2)通常还要覆盖
多态的特点:
1)编辑时:要查看引用变量所属的类中是否有所调用的成员。
2)运行时:要查看对象所属的类中是否有所调用的成员。
成员变量:
1)编译时:参考引用类型变量所属的类中是否有调用的成员变量。有,编译通过,没有,编译不通过。
2)运行时:参考引用类型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
以上通俗讲就是:编译和运行都参考等号的左边,只看引用变量所属的类。(Animal a = new Dog();)
谈谈Java面向对象的三大特性的更多相关文章
- Java学习笔记二十五:Java面向对象的三大特性之多态
Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...
- Java学习笔记二十一:Java面向对象的三大特性之继承
Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...
- Java学习笔记十八:Java面向对象的三大特性之封装
Java面向对象的三大特性之封装 一:面向对象的三大特性: 封装 继承 多态 二:封装的概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访 ...
- java面向对象的三大特性
1.面向对象的三大特性 继承.封装.多态 什么是继承? ①继承是面向对象程序设计能够提高软件开发效率的重要原因之一. ②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷. ③继承来的属性 ...
- 3.java面向对象编程三大特性之多态
面向对象编程的三大特性:封装.继承.多态 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对类的外部而言它的内部实现细节是隐藏的,暴露给外界的只是它的实现方法. ...
- Java 面向对象的三大特性之一 继承
继承: Java是继承的三大特性之一,是Java中实现代码重用的手段之一 将重复的代码抽取到父类中继承的有点或者现实 优点: 方便修改代码 减少代码量 Java中继承的语法: 修饰符 SubClass ...
- java面向对象的三大特性——多态
多态 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底 ...
- 2.Java面向对象编程三大特性之继承
在<Think in Java>中有这样一句话:复用代码是java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复用代码并对其加以改变是不够的,他还必须能够做更多的事情.复用 ...
- Java面向对象编程三大特性 --- 多态
多态特性: 子类Child继承父类Father,我们可以编写一个指向子类的父类类型引用,该引用既可以处理父类Father对象,也可以处理子类Child对象,当相同的消息发送给子类或者父类对象时,该对象 ...
随机推荐
- 关于vue.js的计算属性练习代码
参照官网联系如下: <!DOCTYPE html><html lang="en"><head> <meta charset="U ...
- 修复FreeBSD上的ufs文件系统
昨天在两台FreeBSD上配置好Heartbeat服务(两台机器是用网线连通的,做为Heartbeat的两个节点),启动服务时Heartbeat检测到crmd守护进程没起来,于是它就尝试重启两台机器以 ...
- [BZOJ 3682]Phorni
后缀平衡树的模板题? I'm so weak…… 现在觉得替罪羊树比 treap 好写,是不是没救了喵- #include <cstdio> #include <cmath> ...
- html框架
1.框架的概念 框架:将一个浏览器窗口划分成若干个小窗口 2.框架集合框架页 框架集<frameset>:主要用来划分窗口的. 框架页<frame>:主要用来指定窗口默认显示的 ...
- Eclipse中Sever启动成功,但tomcat无法管理页面无法访问。
- 【python】构造字典类型字典
字典类型字典:就是包含字典类型的字典,如{'sss': {'ss': 'dddsdsdsd'}} 构造方式: a={} b="sss" a[b]={} a[b]['ss'] = & ...
- vim中执行shell命令
1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls -l 特别的可以运行:!bas ...
- HTML DOM元素的Dragdrop
在前端web页面中,为了提高用户体验,通常会希望将页面中的元素设计成可dragdop的,简化用户操作.这一设计特性在缺少鼠标的触摸屏设备上,显得更为重要. 在早期的应用中,我们通常需要借助第三方的ja ...
- Zedboard安装桌面系统ubuntu及opencv(2)
接上一篇,下面安装opencv. 一般都是参照陆佳华那本白色封皮的<软硬件协同设计>,但是不得不说这本书实在太粗糙了,很多的细节都没有说明. 首先,在PC和这块板子的方法是一样的,所以PC ...
- Appium的安装
APPium的官网地址为:http://appium.io,在官网可以看到安装步骤如下: