简介

在面向过程当中只有存在封装(对功能的封装 例如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--面向对象三大特征-->封装、继承、多态的更多相关文章

  1. JAVA的三大特征 封装继承多态- 简单总结

    简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...

  2. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  3. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  4. JAVA 面向对象 三大特征:继承

    什么是继承 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接访 ...

  5. Java 面向对象三大特征之一: 多态

    多态与类型转换 子类重写父类方法 1)位置:子类和父类中有同名的方法 2)方法名相同,返回类型和修饰符相同,参数列表相同       方法体不同 多态的优势和应用场合 多态:同一个引用类型,使用不同的 ...

  6. 封装继承多态-java面向对象三大特征

    第七章  封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...

  7. Java三大特性(封装,继承,多态)

    Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...

  8. OOP三大核心封装继承多态

    OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...

  9. 【JavaSE】面向对象三大特征——封装、继承、多态

    前言:本文主要介绍思想 封装 封装这一概念并不仅存在与面向对象中,甚至说封装这一概念不仅限于编程中,其实生活中的封装无处不在.比如 需求:你到银行取钱 参数:你只需要提供银行卡和密码 返回值:柜员会将 ...

  10. java面向对象三大特性之继承

    通过重用已经测试并验证通过的代码,怎样才减少开发工作,所有开发团队都在为一问题而努力.一个久经考验的方法是通过有效地使用Java继承优化应用程序开发. 继承的从某种意义上讲,继承的短暂美就如同宇宙中所 ...

随机推荐

  1. tensorflow笔记2(北大网课实战)

    1.正则化缓解过拟合 正则化在损失函数中引入模型复杂度指标,利用给w加权值,弱化了训练数据的噪声 一般不会正则化b. 2.matplotlib.pyplot 3.搭建模块化的神经网络八股: 前向传播就 ...

  2. C语言备忘录——向上取整

    众所周知,C语言的取整方式是向下取整,昨天老师留了一道思考题,问我们C语言怎么向上取整,当时我第一反应就是ceil(),老师说不能用if……else之类的,函数也不行.当时想了想没事不用就不用,去ma ...

  3. Tensorflow学习教程------非线性回归

    自己搭建神经网络求解非线性回归系数 代码 #coding:utf-8 import tensorflow as tf import numpy as np import matplotlib.pypl ...

  4. 19 01 08 javascript 初学

    变量 JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定. 定义变量需要用关键字 'var' 变量类型 5种基本数据类型:1.number 数字类型2.string ...

  5. 对python里的装饰器

    内裤可以用来遮羞,但是到了冬天它没法为我们防风御寒,聪明的人们发明了长裤,有了长裤后宝宝再也不冷了,装饰器就像我们这里说的长裤,在不影响内裤作用的前提下,给我们的身子提供了保暖的功效. 再回到我们的主 ...

  6. offset系列、client系列、scroll系列

      offset系列.client系列 <style> .testDOM { width: 200px; height: 200px; background-color: #2de; pa ...

  7. 更新anaconda包

    升级安装python环境后, 把老的包重新安装回去. ls -l /opt/anaconda3/lib/python3.7/site-packages/ | grep "\-info&quo ...

  8. 当切换用户时出现-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 ...

  9. 吴裕雄--天生自然MySQL学习笔记:MySQL 数据类型

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准SQL数值数据类型. 这 ...

  10. C# 创建Windows服务。服务功能:定时操作数据库

      一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在Service1.cs添加如下代码: System.T ...