面向对象三大特征 Part 2
1.继承
1.1 继承带来的问题
子类可以通过继承获取到父类中非私有化方法,但是父类的方法,不一定满足子类的情况
不可能通过重新定义类似的方法名,完成子类特定的符合要求的方法
1.2 方法的重写
重写之后,在没有增加新的方法名的情况下,重写方法体内容,让方法满足子类,降低了开发压力,提高了效率。
@override要求重写方法的和父类中的方法,声明完全一致,返回值类型,方法名和形式参数列表
1.3 重写和继承带来的问题
子类继承父类可以直接使用父类的方法,但是在这种情况下我么你可以发现父类的方法是一定不能在子类中使用的
但是又没有一个强制要求
需求:
强制要求子类重写父类的方法,从语法角度约束
1.4 abstract关键字
abstract修饰的方法 要求子类强制重写
1.4.1abstract的使用
1. abstract修饰的方法没有方法体
2. abstract修饰的方法必须定义在abstract修饰的类内或者interface接口内
3. 一个普通类【非abstract】修饰的类,继承了一个abstract类,那么必须实现在abstract类内所有abstract,强制要求
4. 如果一个abstract A类继承另一个abstract B类,A类可以选择实现B类中abstract方法
5. abstract修饰的类内允许普通方法
6. abstract修饰的类不能创建自己的类对象
2. final关键字
final修饰的成员变量final修饰的成员变量定义时必须初始化,并且赋值之后无法修改,一般用于类内带有名字的常量使用
final修饰成员方法final修饰的成员变量不能被子类重写,为最终方法,可以用于一些安全性方法的定义
final修饰的局部变量final修饰的局部变量一旦被赋值,不能修改
final修饰的类final修饰的类没有子类,不能被继承abstract修饰的类不能被final修饰
3.static关键字
3.1 static 静态成员变量使用注意事项
1. 静态成员变量是使用static修饰的成员变量,定义在内存的【数据区】
2. 静态成员变量不推荐使用类对象调用,会提示警告The static field SingleDog.info should be accessed in a static way使用static修饰的SingleDog类neural的info变量,应该通过静态方式访问
3. 静态成员变量使用类名调用是没有任何的问题
4. 在代码中没有创建对象时,可以通过类名调用静态成员变量,和【对象无关】
5. 代码中对象已经被JVM的GC销毁时,依然可以通过类名调用静态成员变量,和【对象无关】
6. 不管哪一种方式调用静态成员变量,修改对应的静态成员变量数据,所有对应的静态成员变量数据,所有使用到当前静态成员变量的位置,都会受到影响
3.2 static修饰静态成员方法的格式
public static 返回值类型 方法名(形式参数列表) {}
3.2.1 静态成员方法注意事项
1. 静态成员方法推荐使用静态方法调用,通过类名调用不推荐使用类对象调用,因为【木得对象】
2. 静态成员方法中不能使用费静态成员 ==> (非静态成员方法和非静态成员变量)因为【木得对象】
3. 静态成员方法中不能使用this关键字because木得对象
4. 静态成员方法中可以使用类内的其他静态成员【难兄难弟】
5. 静态陈冠方法中,可以通过new构造方法创建对象
3.2.2 静态成员方法的特征解释
1. 静态成员方法加载时间问题静态成员方法是随着.class字节码文件的加载而直接定义在内存的【方法区】,而且此时的静态成员方法已经可以直接运行。通过类名直接调用,而此时没有对象存在
2. 为什么静态成员方法不能使用费静态成员没有对象!!!!!
3. 为什么静态成员方法不能使用this关键字没有对象!!!!!
4. 静态成员方法可以使用其他静态成员生命周期一致,调用方法一致
面向对象三大特征 Part 2相关推荐
- c++局部对象是什么_面向对象三大特征: 封装
今日内容 面向对象概述 类和对象的关系 面向对象内存图 private.this关键字和封装 面向对象之构造方法 面向对象三大特征 封装 继承 多态 01. 面向过程和面向对象思想概述 什么是面向过程 ...
- 面向对象第七章,内存的管理,面向对象三大特征封装、继承、多态
###1.内存管理:由JVM来管理的------了解 1)堆: 1.1)存储new出来的对象(包括实例变量) 1.2)垃圾:没有任何引用指向的对象 垃圾回收器(GC)不定时到内存中清扫垃圾, 回收过程 ...
- c++面向对象三大特征封装、继承和多态知识总结
面向对象三大特征:封装,继承,多态: 一.封装:该公开的就公开话,该私有的就隐藏掉,主要是由public,private实现:作用是便于分工和分模块,防止不必要的扩展: 二.继承:就是一种传承,可以把 ...
- Java面向对象三大特征---继承
系列文章目录 Java面向对象三大特征-多态 Java面向对象三大特征-封装 文章目录 系列文章目录 前言 一.概念 二.举例说明 三.语句格式 三.为何要使用继承 四.super与this关键字 五 ...
- 细说面向对象三大特征
一.软件设计的概况 1. 软件的生命周期 产品提出需求 分析以及规划 软件编码及其调试(自测,联调) 上测试环境,给测试人员测试(提bug) 上 linux 生产服务器(运维人员维护,修改bug,系统 ...
- Java基础:面向对象三大特征、五大原则
转载请注明出处:jiq•钦's technical Blog 面向对象三大特征: (1)封装(Encapsulation) 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可 ...
- Java基础(面向对象三大特征)
面向对象三大特征 封装 继承 多态 1.封装 封装,顾名思义就是将一个东西通过层层包装裹起来,例如c语言中的结构体,将属性和方法封装在一起.更加具体的,发达国家对发展中国家进行技术垄断就是通过将高科技 ...
- js面向对象三大特征
面向对象三大特征: 一. 封装:隐藏内部的细节,不暴露在外面(不让其它访问仅能自己访问) //在js中利用函数的作用域来模拟 // 封装 let Pet=function (name,types) { ...
- python 面向对象三大特征
一.面向对象三大特征介绍 Python 是面向对象的语言,也支持面向对象编程的三大特性:继承.封装(隐藏).多态. 1.封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法. 通过" ...
- Java面向对象三大特征的理解
面向对象三大特征的理解 初始理解 封装 继承 多态 初始理解 其实这些知识很早就有接触,而且一些概念也牢记于心了.自己叙述面向对象的特征会是这样的: 面向对象的三大特征是封装.继承和多态.封装是对代码 ...
最新文章
- 《C语言编程初学者指南》一2.9 理解运算符优先级
- 20200428总结
- 标签内超出的文字显示省略号
- mindray心电监护仪使用说明_怎么看监护仪上的参数
- Linux 启/关 自启动服务
- ios 请求失败封装_vue_axios请求封装、异常拦截统一处理
- 【渝粤教育】国家开放大学2018年秋季 1174t水工钢筋混凝土结构(本) 参考试题
- 玉龙雪山还会存在多久
- 大学计算机Excel考试内容,大学计算机考试—Excel(操作题供参考,不附练习文件)...
- ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针时钟+数字时钟显示
- 毕设必备:Python采集全球疫情数据并做可视化分析
- html手机端富文本,移动端富文本踩坑
- 补间动画tween.js
- php薄饼,厦门薄饼
- 【ST表】Zoning Houses
- 地理信息安全在线培训考试系统题库-必对题
- 信源编码技术作业(1)绘制、分析清浊音频谱图
- Windows电脑 添加 安卓或者苹果平板作为拓展屏(spacedesk )
- TinyOS 学习第一周-Ubuntu-10.10下安装TinyOS-2.1.1
- Collections.sort对List排序的两种方法