美文网首页
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中的面向对象特性

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