Java--面向对象三大特征-->封装、继承、多态
简介
在面向过程当中只有存在封装(对功能的封装 例如c语言中的函数),而在面向对象中才存在这三大特性。
继承 -->inheritance
1、子类可以从父类继承属性和方法(除去父类私有化的方法private修饰的)
2、子类可以提供自己单独的属性和方法
封装-->encapsulation
不需要外面访问的我隐藏起来,外界可能用到的我给你提供接口
1、对外隐藏某些属性和方法
2、对外公开某些属性和方法
多态--> polymorphism
1、是程序的最终状态只有 在执行过程中才被决定而非在编译期间就决定了
具体理解在下面再说
封装
引入封装是可以隐藏对象内部的具体实现,具体的功能对外提供接口,避免内部数据被外部干涉等,可以是程序做到“高内聚”,“低耦合”,使系统具有更好的稳定性和扩展性。
如何实现封装:
通过访问修饰权限控制符对对象内部的数据和方法进行实现封装。
1、不同的访问修饰符权限控制
成员(成员变量或成员方法)访问权限共有四种:
1、 public 公共的 • 可以被项目中所有的类访问。(项目可见性)
2、 protected 受保护的 • 可以被这个类本身访问;同一个包中的所有其他的类访问;被它的子类(同一个包以及不同包中的子类)访问
3、default(包可见性) • 被这个类本身访问;被同一个包中的类访问。
4、private 私有的 • 只能被这个类本身访问。(类可见性)
类的访问权限只有两种
1、public 公共的 • 可被同一项目中所有的类访问。 (必须与文件名同名)
2、 default • 可被同一个包中的类访问。
一些默认的封装规则:
1、类属性一般进行私有化封装(private),这些私有化的对外提供get/set方法(在这些方法中对设置的属性进行检查可以提高安全性,并且这些方法要被外界调用所以要为public修饰)。
2、只会在本类中 调用的方法修饰为private(辅助本类中的其他方法完成工作)。
3、外界需要调用的方法,权限修饰符设置为public。
继承
继承是子类对父类进行扩展,继承父类中的属性和方法(非私有化的),但不会去继承父类的构造方法,所有的类在不写extends是默认继承的是Object类。
简单继承例子:
在java中只存在单继承,多继承会引起不必要的混乱,java中的多继承由接口实现。
子类通过继承父类的方法也可以对方法进行重写,形成自身独特的-->方法重写:
方法重写注意点:
1、 “==”:方法名、形参列表相同。
2、“≤≤”:返回值类型和异常类型,子类小于等于父类。
3、“≥”:访问权限,子类大于等于父类
在继承时,子类调用父类的方法属性时使用spuer关键字,自己的则使用this(相当于当前对象)
多态
在继承的基础下,在编译时给一个模糊的类型(类型),在执行是才给真正的类型(实现父类的子类),这样可以提高程序的的灵活性和扩展
性。
要有多态必须要有一下条件:
1、继承(接口也算),这样才不会将类型唯一化。
2、重写
3、上转型对象
多态的形式:使用父类做形参 , 使用父类做方法返回值,方法的重载
Java--面向对象三大特征-->封装、继承、多态的更多相关文章
- JAVA的三大特征 封装继承多态- 简单总结
简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- JAVA 面向对象 三大特征:继承
什么是继承 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接访 ...
- Java 面向对象三大特征之一: 多态
多态与类型转换 子类重写父类方法 1)位置:子类和父类中有同名的方法 2)方法名相同,返回类型和修饰符相同,参数列表相同 方法体不同 多态的优势和应用场合 多态:同一个引用类型,使用不同的 ...
- 封装继承多态-java面向对象三大特征
第七章 封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...
- Java三大特性(封装,继承,多态)
Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...
- OOP三大核心封装继承多态
OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...
- 【JavaSE】面向对象三大特征——封装、继承、多态
前言:本文主要介绍思想 封装 封装这一概念并不仅存在与面向对象中,甚至说封装这一概念不仅限于编程中,其实生活中的封装无处不在.比如 需求:你到银行取钱 参数:你只需要提供银行卡和密码 返回值:柜员会将 ...
- java面向对象三大特性之继承
通过重用已经测试并验证通过的代码,怎样才减少开发工作,所有开发团队都在为一问题而努力.一个久经考验的方法是通过有效地使用Java继承优化应用程序开发. 继承的从某种意义上讲,继承的短暂美就如同宇宙中所 ...
随机推荐
- tensorflow笔记2(北大网课实战)
1.正则化缓解过拟合 正则化在损失函数中引入模型复杂度指标,利用给w加权值,弱化了训练数据的噪声 一般不会正则化b. 2.matplotlib.pyplot 3.搭建模块化的神经网络八股: 前向传播就 ...
- C语言备忘录——向上取整
众所周知,C语言的取整方式是向下取整,昨天老师留了一道思考题,问我们C语言怎么向上取整,当时我第一反应就是ceil(),老师说不能用if……else之类的,函数也不行.当时想了想没事不用就不用,去ma ...
- Tensorflow学习教程------非线性回归
自己搭建神经网络求解非线性回归系数 代码 #coding:utf-8 import tensorflow as tf import numpy as np import matplotlib.pypl ...
- 19 01 08 javascript 初学
变量 JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定. 定义变量需要用关键字 'var' 变量类型 5种基本数据类型:1.number 数字类型2.string ...
- 对python里的装饰器
内裤可以用来遮羞,但是到了冬天它没法为我们防风御寒,聪明的人们发明了长裤,有了长裤后宝宝再也不冷了,装饰器就像我们这里说的长裤,在不影响内裤作用的前提下,给我们的身子提供了保暖的功效. 再回到我们的主 ...
- offset系列、client系列、scroll系列
offset系列.client系列 <style> .testDOM { width: 200px; height: 200px; background-color: #2de; pa ...
- 更新anaconda包
升级安装python环境后, 把老的包重新安装回去. ls -l /opt/anaconda3/lib/python3.7/site-packages/ | grep "\-info&quo ...
- 当切换用户时出现-bash-4.1$
问题重现 [root@localhost ~]# su - yh -bash-4.1$ -bash-4.1$ -bash-4.1$ -bash-4.1$ -bash-4.1$ cd /home -ba ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准SQL数值数据类型. 这 ...
- C# 创建Windows服务。服务功能:定时操作数据库
一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在Service1.cs添加如下代码: System.T ...