zoukankan      html  css  js  c++  java
  • abstract class VS interface

    关于抽象类 abstract class:

    1. 抽象方法必须在抽象类中

    2. 抽象类和抽象方法要用abstract 关键字修饰

    3. 不可以用new 来实例化一个abstract类,因为调用抽象方法没有意义

    4. 抽象类中的方法要被使用,必须由子类实现了父类中的所有抽象方法后,建立子类的对象才能调用;

        如果子类中只覆盖了部分抽象方法,那么这个子类也是一个抽象类。

    抽象类和一般类的区别只有一点: 有一些功能不是很清楚,只知道这个功能需要明确出现,但是该类无法定义主体,需要子类去实现。通过抽象方法来处理。

    抽象类比一般类多了抽象方法;抽象类不可以被实例化;(抽象类中也可以不定义抽象方法,只用来防止实例化)

    模板方法设计模式: 在定义功能时,功能的一部分是确定的,但是有一部分功能是不确定的,而确定的部分在使用不确定的部分。这时,我们可以把不确定的功能暴露出去,由该类的子类去完成。不一定是抽象类和抽象方法哦,只是可以被子类覆盖。

    接口interface:

    当抽象类中的所有方法都是抽象的时候,可以将这个类定义为接口。

    接口的定义格式:

    1. 接口中定义: 常量和抽象方法

    常量: public static final

    抽象方法: public  abstract

    小结: 接口中的成员都是固定格式的,即 默认的也是上面的那种定义格式。

    2. 继承接口的类要用关键字  implements

    3. 接口是不可以创建对象的,因为有抽象方法。需要子类对接口中的抽象方法全部实现后才能实例化子类对象。如果有些抽象方法没有实现,则子类是一个抽象类。

    4. 接口支持多实现,因为接口中没有方法实体,只需要子类定义就可以了,一个类在继承一个类的同时还可以实现多个接口。

    5. java 所支持的多继承, 只是在接口与接口之间,接口之间存在多继承。类的多实现也可以实现多继承。

    接口的特点:

    1. 接口是对外暴露的规则

    2. 接口是程序的功能扩展

    3. 接口可以用来多实现

    4. 类与接口之间是实现的关系,而且类在继承一个类的同事可以同时实现多个接口

    5. 接口与接口之间可以有继承关系

    在项目使用中,继承表示 is a的关系,而实现接口则表示 like a 的意思。  可以形象的把继承的那个叫做主业,而实现的接口是那个类的副业。

  • 相关阅读:
    json解析:[1]gson解析json
    android 调用系统相机拍照 获取原图
    EventBus使用详解(二)——EventBus使用进阶
    java中的正则表达式
    java的UI设计--------------------------------待补充
    java的网络编程
    IO知识点整理(序列化,管道流,数据流,字节数组流,与编码)
    IO知识点整理(文件File类的使用)
    040 DataFrame中的write与read编程
    039 DataFrame的理解
  • 原文地址:https://www.cnblogs.com/Lillian-1304/p/AbstractAndInterface.html
Copyright © 2011-2022 走看看