面向对象主要由三大特性:

  •   封装

  •   继承

  •   多态

.封装定义

编写一个类就是对数据和数据的操作封装,封装即时隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。(简单的来说在Java中一个文件包下的类文件....类下面的方法,属性....方法下的代码等.....)。

二、继承:

定义: 子类继承父类的特征和行为。提供继承信息的类被称为父类(基类),得到继承信息的类被称为子类(派生类)。

特点:1、一个类只能继承一个父类,构造方法不能被继承。  2、支持多层继承   3、父类private 的属性和方法不能继承。

具体理解:

继承:从一个已有的组件中获取元素,避免重复构建某些元素。
好处:提升重复利用。建立体系关系。
Java 实现:
通过extends关键字实现类与类之间的继承。被继承的类称为父类、基类,实现继承的类称为子类。·子类可以继承父类的非私有化 (private)元素(成员属性、成员方法)。
构造器不能被继承!但是父类构造器可以被子类调用。

注意:
Object是所有Java类的根父类。如果没有显式声明继承关系,那么这个类默认继承自Object。

三、多态

定义:同一个行为具有多个不同表现形式或形态能力

优点:提升程序的灵活性、可扩展性。

缺点:编译期间如果对象的类型是编译类型,且编译类型是父类类型,那么写代码时,只能调用父类类型提供的功能方法,不能调用真实类型中的特有方法。

多态实现方式:

方式一:重载与重写

重载:在一个类中,同一个方法名称,不同的参数类型及个数,可以完成不同功能。

重写:同一个方法名称,子类继承父类的方法,根据操作的子类不同,所完成的功能也不同。

方式二:抽象类和抽象方法

抽象方法:一个没有方法体的方法称为抽象方法。

格式:修饰符 abstract 返回值类型 方法名(参数列表){}

抽象类:abstract class 类名{}

特点:1、抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类。

   2、抽象类不可以是实例化。

   3、抽象类的子类,可以是抽象类,也可以是具体类。如果子类为具体类,需要重写抽象类中所有抽象方法。

方式三:接口

定义:是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。

接口无法被实例化,但是可以被实现. 一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。

具体理解:

多态:在面向对象编程中,工作的核心单元对象,可以在不同时期拥有多种形态(编译形态、真实形态),以适应更灵活的程序编码。

Java 实现:
前提条件:类与类之间有关系(父类与子类的继承关系、接口与实现类的实现关系)。对象可以在体系中的多个类型中完成相互转换:
类型自动提升(向上转型)︰子类自动提升为父类(祖父类)类型。
类型强制转换(向下转型)∶父类类型的对象通过强制转换语法转换为子类类型(向下转型时需要关注该对象的真实类型,最多向下转换为其真实类型,且不能转换为无关类型)
在多态情况下,如果子类重写了父类方法,且对象的真实类型是子类类型,那么在程序运行期间,调用的方法指向真实类型中的方法。

java面向对象三大特性理解相关推荐

  1. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  2. 【职坐标】java面向对象三大特性(二)——继承详解

    [职坐标]java面向对象三大特性(二)--继承详解 a) 什么是继承? i. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可 b) ...

  3. java 面向对象三大特性之继承 万字详解(超详细)

    目录 前言 : 一.为什么需要继承: 二.什么是继承(Warning : 篇幅较长)? 1.继承概述: 2.子类继承父类之后达到的效果 : ①如何使用继承? ②代码演示 : 3.继承的使用场景: eg ...

  4. java 面向对象三大特性之多态 万字详解(超详细)

    目录 前言 : 一.为什么需要多态 : 1.白璧微瑕 : 2.举栗(请甘雨,刻晴,钟离吃饭): 3.代码 : 4.问题 : 二.什么是多态 : 1.定义 : 2.多态的实现步骤(重要) : 三.多态的 ...

  5. java 面向对象多态_乐字节Java面向对象三大特性以及Java多态

    ​ 以上就是本次学习的6大任务.我们依次来看. 1 Object类 Object类是所有Java类的根基类. 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类. cla ...

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

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

  7. java面向对象三大特性难吗_JAVA面向对象的三大特性

    JAVA面向对象的三大特性 每一对象是其状态和行为的封装.类是按一定体系和层次安排的,使得子类可以从超类继承行为.在这个类层次体系中有一个根类,它是具有一般行为的类.Java程序是用类来组织的.下面是 ...

  8. Java面向对象三大特性(封装、继承、多态)

    文章目录 前言 一.封装 1. 封装的概念 2. private实现封装 3. getter和setter方法 4.封装的好处 二.继承 1. 继承的概念 2. extends实现继承 3. supe ...

  9. Java面向对象三大特性详解

    一.封装 1.概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: 只能通过规定的方法访问数据. 隐藏类的实例细节,方便修改和实 ...

最新文章

  1. 散列表查找(哈希表)
  2. 格式化json_在Spring Boot中格式化JSON日期
  3. HDU3400+三分
  4. #获得请求来源ip_以太网数据包TCP、IP、ICMP、UDP、ARP协议头结构详解
  5. 全面永久退出!又一巨头被逼上绝路!
  6. 凸优化问题中的Bregman迭代算法
  7. Nginx基本功能及其原理
  8. linux脚本转win7脚本,使用一个脚本让Ubuntu“变身”Windows7
  9. MyBatis配置项--配置环境(environments)
  10. java 磁力下载工具_它可能是现在最好用的磁力下载工具
  11. 关于“wuauclt.exe”病毒的清理
  12. win11硬盘分区如何合并 windows11硬盘分区合并的解决方法
  13. “地面哨兵”挑战赛圆满落下帷幕,最终结果揭晓
  14. 如何用几何画板把圆奇数等分
  15. Orphaned pod found - but volume paths are still present on disk的处理
  16. uniapp 英寸尺子 尺子 左右滑动
  17. java跳出循环的几种方式
  18. 我的物联网大学【第八章】:跟一个女采购见光死的故事
  19. 《算法图解》学习笔记(六):图和广度优先搜索(附代码)
  20. php大文件读取和存储,使用PHP读取和解析大文件实战

热门文章

  1. ASP.NET MVC的SNS软件Spacebuilder
  2. 路由器重温——接口配置与管理2
  3. SQL中数据的更新查询
  4. CCAI 2017 人工智能科学与艺术论坛 | 科学、艺术、女性之间的碰撞
  5. win7 IIS客户端远程服务器端访问配置和部署问题(含泪摸索一周才总结出来的)
  6. Matlab:使用 App 设计工具创建并运行简单 App
  7. WPF-WrapPanel
  8. 学生网站模板:旅游出行网站设计——旅游网设计(15页) HTML+CSS+JavaScript 学生DW网页设计作业成品 学生旅游网站模板
  9. 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...
  10. 企业直播该如何做?硬件设备、网络环境、设备连接和观看权限等整个直播流程教程