美文网首页
Java中的面向对象特性

Java中的面向对象特性

作者: 东方未白_ | 来源:发表于2019-06-22 21:45 被阅读0次

面向对象编程 封装 继承 多态 是什么?如何实现?有什么好处/缺点?用于什么样的业务场景?

封装

封装是指:隐藏对象的属性和实现细节,仅对外提供公共访问方式。

封装的原则

  • 将不需要对外提供的内容都隐藏起来

  • 把实现细节隐藏,提供可以对其进行访问公共的方式

  • 封装的方式:

    • 将某一功能、属性抽离出来,独立写成单独的方法或类
    • 设置访问权限可以限定该功能或属性可以被特定的访问者访问,保证了程序的安全性和功能的稳定性。

继承

  • 继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的功能
  • 将事物的共性的功能和属性抽取出来定义成一个父类,让后来具有更多样化实现的子类继承父类

继承的作用:

  • 让类与类之间产生关系,有了关系才有多态的实现
  • Java中只支持单继承,不支持多继承,因为多继承存在安全隐患
    • 当多个父类存在同个功能时,子类不确定要运行哪一个
    • 类是本身就是一种抽象,如同人类,不能同时运行两个灵魂。
  • 让类与类之间产生关系,有了关系才有多态的实现

继承的特点:

  • 重载与重写,重载是参数列表不同,其他相同,而重写时参数列表一致。
  • this表示当前对象的引用,super表示当前对象父类的引用
  • 如果子父类中的成员一致时,子类成员会覆盖父类成员

多态

定义: 某一类事物具备的多种表现形态(猫、狗和动物)

表现形式:

  • 父类的引用指向自己的子类对象
  • 父类的引用接受自己的子类对象

多态的前提:

  • 必须是类与类之间有关系,要么继承,要么实现
  • 子父类成员之间存在覆盖

应用:

  • 向上转型,(自然转型)
  • 向下转型,(强制父类引用向下转换)

实例:

数据库操作(各种数据库):定义数据库的父类型,由哪类型的数据库调用就由该子类实现其具体操作内容。


Object类的方法

    equals() 比较两个对象是否相同

    toString() 返回该对象的字符串表示形式

    getClass() 获取该对象对应的字节码文件对象

    hasCode() 获取该对象的哈希码值

类之间的体系关系

继承:一个类继承另一个类的功能,并增加它自己的新功能或改写旧功能的具体实现

聚合:指的是整体与部分之间的关系,在定义一个整体类后,再去分析这个整体类的组成结构。(球队与球员)

组合:也表示整体与部分之间的关系,但组合关系中部分和整体具有统一的生存期。(人体与器官)


抽象类

接口


访问修饰符:

  • public : 公共的,任何类都可以访问,一个java源文件只能有一个类用public修饰,,该类名和编译后的字节码文件名相同

  • private : 私有的,仅本类可以访问,其他都不给

  • protected : 受保护的,同包可以访问,不同包的子类可以访问,重点突出继承

  • default : 默认的,出了包就不行,突出包

  • final : 将一个类生命为最终(即非继承类),表示他不能被其他类继承。

  • abstract : 将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。

相关文章

  • 面向对象三大特性(一):封装

    面向对象有三大特性:封装、继承和多态。注意,是面向对象的三大特性而不是Java的三大特性,Java只是面向对象语言...

  • 05 类和对象

    面向对象是Java最重要的特性。Java是彻底的、纯粹的面向对象语言,在Java中“一切都是对象”。本章将介绍面向...

  • java总结

    Java是一门面向对象编程语言. java知识点梳理 java面向对象的特点java面向对象的三个基本特性: 封...

  • Android 开发者进阶的“丝绸之路”,万人踩坑晋升总结

    一、Java基础 1 . 面向对象的三大特性:Java 作为面向对象编程语言,你得知道OOP的的三大特性封装、继承...

  • 学Java只需搞懂这两个问题

    搞清楚面向对象的历史演变,java的每个特性都是基于面向对象产生的。java就是面向对象而生的,java就是一种思...

  • 学java就两个问题

    搞清楚面向对象的历史演变,java的每个特性都是基于面向对象产生的。java就是面向对象而生的,java就是一种思...

  • Java中的面向对象特性

    面向对象编程 封装 继承 多态 是什么?如何实现?有什么好处/缺点?用于什么样的业务场景? 封装 封装是指:隐藏对...

  • Java 浅析三大特性之一封装

    在说Java 三个特性之前,我们先了解一下什么是面向对象,以及为什么Java是面向对象的语言。面向对象是区别于面向...

  • Scala编程详解13:函数式编程

    Scala中的函数是Java中完全没有的概念。因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性...

  • 阶段 1:Java语言基础

    一. Java 编程入门 二. Java面向对象编程 三. Java语言高级特性

网友评论

      本文标题:Java中的面向对象特性

      本文链接:https://www.haomeiwen.com/subject/ipbeqctx.html