Java中的面向对象特性

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

封装

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

封装的原则:

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

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

  • 封装的方式:

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

继承

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

继承的作用:

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

继承的特点:

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

多态

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

表现形式:

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

多态的前提:

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

应用:

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

实例:

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


Object类的方法

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

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

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

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

类之间的体系关系

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

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

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


抽象类

接口


访问修饰符:

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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 1,300评论 0赞 2
  • 目录:一、 封装二、 继承三、 多态四、 抽象类 一、封装 1. 概述 定义:将类的某些信息隐藏在类的内部,不允许...
    千面娇你妹的娃阅读 491评论 0赞 1
  • java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继...
    863cda997e42阅读 839评论 0赞 1
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 604评论 0赞 2
  • 今日总结 经历: 听学姐讲tasking图,pre-pos的题 了解函数式编程,规范函数及变量的命名(驼峰式命名)...
    张鸽阅读 199评论 0赞 3

友情链接更多精彩内容