Java_面向对象三大特征
面向对象特征
面向对象三大特征: 继承, 封装, 多态
继承
继承:
- 子类可以从父类继承属性和方法
- 对外公开某些属性和方法
要点(eclipse中Ctrl+T查看继承结构)
1.父类也称超类, 基类, 派生类
2.Java中只有单继承, 没有C++那种多继承
3.接口有多继承
4.子类继承父类, 可以得到父类的全部属性和方法(除了构造方法), 但不一定可以直接访问(例如父类中的私有属性和方法)
5.如果定义一个类时, 没有调用extends, 则它的父类是java.lang.object
Object类是所有Java类的根基类, 也就意味着所有的Java对象都有object类的属性和方法
关键字super
super是直接父类对象的引用, 可以通过super来访问父类中被子类覆盖的方法或属性
属性/方法查找顺序(如变量h)
1.查找当前类中有没有属性h
2.依次上溯每个类的父类, 查看每个父类中有没有j, 直到object
3.如果没有找到, 则出现编译错误
4.上述步骤中, 只要找到变量h, 则这个过程终止
构造方法调用顺序
构造方法第一句总是super(...)来调用父类对应的构造方法. 所以流程是先向上追溯到object, 然后再依次向下执行类的初始化和构造方法, 直到当前子类为止, 同静态初始化块一样, 先把静态初始化全部执行(父类直至object和子类)完后, 再执行构造方法
封装
封装作用
- 对外隐藏某些属性和方法
- 对外公开某些属性和方法
| 修饰符 | 同一个类 | 同一个包 | 不同包的子类 | 所有类 |
| private | * | |||
| defualt | * | * | ||
| proteced | * | * | * | |
| public | * | * | * | * |
成员(成员变量或成员方法)访问权限共四种:
private
只能被这个类本身访问
default
可以被这个类本身访问
可以被同一个包中的类访问
protected
可以被这个类分数访问
可以被同一个包中的所有其他类访问
被它的子类(同一个包以及不同包的子类)访问
public
可以被该项目的所有包中的所有类访问
类的访问权限共两种:
public
可以被同一项目中所有的类访问(必须与文件名同名)
default
可以被同一个包的类访问
封装要点:
类的属性的处理
一般使用private访问权限
提供相应的get/set方法来访问相关属性, 这些方法通常用public修饰, 以提供对属性的赋值与读取操作(boolean变量的get方法是以is开头)
一些只用于本类的辅助性方法可以用private修饰
希望其他类调用的方法用public修饰
多态
多态: 指同一个方法调用, 由于对象的不同, 可能会有不同的行为, 适应多种变化, 使得代码变得更加通用
属性没有多态
引用变量的两种类型:
- 编译时类型(模糊一点, 一般是一个父类)
由声明时类型决定- 运行时类型(运行时, 具体是哪个子类就是哪个子类)
由实际对应的对象类型决定
多态要点:
1.多态是方法的多态, 不是属性的多态(多态与属性无关)
2.多态的存在要有3个必要条件: 继承, 方法重写, 父类引用指向子类对象
3.父类引用指向子类对象后, 用该父类引用调用子类重写的方法, 此时实现多态
4.多态不能调用声明类型中没有的方法
Java_面向对象三大特征的更多相关文章
- Java中面向对象三大特征
也就是说在这里"人"是多态的, 在不同的形态时,特征行为是不一样的, 这里的"人", 同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是&q ...
- OOP面向对象 三大特征 继承封装多态
OOP面向对象 ----三大特征 继承封装多态 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构 ...
- Java学习:面向对象三大特征:封装、继承、多态之封装性
面向对象三大特征:封装.继承.多态. 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见. 问题描述:定义Person的年 ...
- Java学习:面向对象三大特征:封装性、继承性、多态性之多态性。
面向对象三大特征:封装性.继承性.多态性之多态性. extends继承或者implemens实现,是多态性的前提. 例如:小菜是一个学生,但同时也是一个人.小菜是一个对象,这个对象既有学生形态,也有人 ...
- 面向对象三大特征之封装与static——(Java学习笔记四)
面向对象 编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...
- JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)
面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...
- 封装继承多态-java面向对象三大特征
第七章 封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...
- 【JavaSE】面向对象三大特征——封装、继承、多态
前言:本文主要介绍思想 封装 封装这一概念并不仅存在与面向对象中,甚至说封装这一概念不仅限于编程中,其实生活中的封装无处不在.比如 需求:你到银行取钱 参数:你只需要提供银行卡和密码 返回值:柜员会将 ...
- Java面向对象三大特征
封装: 首先,属性可用来描述同一类事物的特征, 行为可描述一类事物可做的操作,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.比如人这个东东,可用下面的方式封装:人{ 年龄 ...
随机推荐
- 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型
010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...
- puts()和gets()函数
puts()和gets()函数 1. puts()函数 puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针). ...
- 【学习笔记】Polya定理
笔者经多番周折终于看懂了\(\text{Burnside}\)定理和\(\text{Polya}\)定理,特来写一篇学习笔记来记录一下. 群定义 定义:群\((G,·)\)是一个集合与一个运算·所定义 ...
- ASP。NET MVC的部分视图和部分模型
下载source - 1.7 MB 介绍 本文解决了返回视图内容包含表单元素的部分视图的问题. 代码重用是一种非常有用的节省时间的特性,任何优秀的工程师都会在他们的工作过程中构建许多有用的函数.对于W ...
- H264裸码流I/P/B帧类型判别
花了两天时间做了个h264裸流nal类型和frame类型检测的工具,已上传至github,有需要的自行下载. 1.NAL类型检测 nal类型检测非常容易,对照下表即可容易判断类型. 较常用nal类型包 ...
- 有感于“U盘型人才”
先转载一篇互联网上转载比较多的一篇文章,文章是一名职业规划师写的: 上一阶段欠的债,下一阶段总要还,剩男剩女的家里比较着急也是这个道理,该结婚的时候不结婚,生涯任务没完成,必将影响下一段 ...
- 实验五 css进阶应用
实验五 css进阶应用 实验目的: 掌握CSS在列表中的应用,能利用CSS将列表做成精美的导航栏: 掌握CSS在表单元素中的应用: 掌握SPRY菜单的制作方法和CSS代码修改. 实验内容: 1. 制作 ...
- Hudi on Flink在顺丰的实践应用
获取PDF版本 请关注"实时流式计算" 后台回复 "flink1015"
- 【7】进大厂必须掌握的面试题-Java面试-Jsp
1. jsp的生命周期方法是什么? 方法 描述 公共无效的jspInit() 与servlet的init方法相同,仅被调用一次. 公共无效_jspService(ServletRequest requ ...
- MySQL锁详细讲解
本文章向大家介绍MySQL锁详细讲解,包括数据库锁基本知识.表锁.表读锁.表写锁.行锁.MVCC.事务的隔离级别.悲观锁.乐观锁.间隙锁GAP.死锁等等,需要的朋友可以参考一下 锁的相关知识又跟存 ...