• 接口和抽象类的对比,面向对象的三大特性和四大特性


    Day09_SHJavaTraing_4-14-2017

    一.接口和抽象类的对比
    1.相同点
        ①都位于继承的顶端,用于被其他类实现或继承
        ②都不能直接实例化对象
        ③都包含抽象方法,其子类都必须覆写这些抽象方法
    2.区别

    2.1从声明上:

       ①抽象类使用class声明
            ②接口使用interface声明

    2.2从能够书写的成员上看:

       ①抽象类可以书写类中的所有成员
            ②接口中只能书写成员变量和抽象函数(从JDK8开始,接口中可以有实现的函数)

    2.3从有无构造函数上看:
       ①抽象类有构造函数,是给子类实例化对象使用的
            ②接口没有构造函数
    2.4从作用上看:
       ①抽象类将同一继承体系中子类之间共有而实现不同的功能抽取出来
            ②接口将不属于同一继承体系中子类之间共有而实现不同的功能抽取出来,接口可以用来定义规则

    2.5继承关系上:
       ①抽象类是一个类,只支持单一继承和多重继承
            ②接口和接口可以多继承和多重继承;接口和实现类可以多实现

    2.6从继承体系的关系上:
       ①抽象类是这个事物中应该具备的内容, 继承体系是一种 is..a关系
            ②接口是这个事物中的额外内容,继承体系是一种 like..a关系

    3.二者的选用
        ①优先选用接口,尽量少用抽象类

        ②要定义子类的行为,又要为子类提供共性功能时才选用抽象类

    二.面向对象的三大特性,有哪三个?四大特性,有哪四个?(面试题)
        三大特性:封装,继承,多态(如果没说几个就是三个)
        四大特性:封装,继承,多态,抽象(如果说四个就是前面四个)

  • 相关阅读:
    Salesforce LWC学习(三十七) Promise解决progressindicator的小问题
    Salesforce Consumer Goods Cloud 浅谈篇三之 行动计划(Action Plan)相关配置
    python 3.7环境安装并使用csv
    分享数据库优化文章
    php 5.4 var_export的改进
    CentOS7 启动 firewalld 防火墙失败,查看日志提示超时
    使用 SSL 加密的 JDBC 连接 SAP HANA 数据库
    CAS学习笔记一:CAS 授权服务器简易搭建
    202110期自考总结
    自定义 OpenShift s2i 镜像与模板——OracleJDK8
  • 原文地址:https://www.cnblogs.com/EzraOholiabXue/p/Day09_SHJavaTraing_4-14-2017_01.html
Copyright © 2020-2023  润新知