zoukankan      html  css  js  c++  java
  • interface和abstruct比较

    像的地方:

      接口和抽象类都不能实例化,都位于继承树的顶端,用于被其他类实现和继承

      接口和抽象类都可包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法

    差别:

      设计目的不同:

        接口是系统与外界交互的窗口,体现的是一种规范,是系统的总纲

        抽象类是多个子类的父类,体现的是一种模板式设计,是系统实现过程的中间产品

      用法区别:

        接口里只能包含抽象方法和默认方法,不能为普通方法提供实现,抽象类则可以包含普通方法

        接口里不能定义静态方法,抽象类里可以定义静态方法

        接口里只能定义静态变量,不能定义普通变量,抽象类则既可以定义静态变量,也可以定义普通变量

        接口里不含构造器,抽象类包含构造器,其构造器不用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作

        接口里不能包含初始化块,抽象类可以包含初始化块

        一个类只能有一个父类,包括抽象类,但可以实现多接口,弥补java单继承的不足

    抽象类
    特点:
    1.抽象类中可以构造方法
    2.抽象类中可以存在普通属性,方法,静态属性和方法。
    3.抽象类中可以存在抽象方法。
    4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。
    5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。
    接口
     
    1.在接口中只有方法的声明,没有方法体。
    2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上
    public static final 
    3.在接口中的方法,永远都被public来修饰。
    4.接口中没有构造方法,也不能实例化接口的对象。
    5.接口可以实现多继承
    6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法则实现类定义为抽象类。
  • 相关阅读:
    《算法导论》读书笔记
    【原创】POI操作Excel导入导出工具类ExcelUtil
    10-JMM
    09-字节码执行引擎
    08-类加载机制
    07-前端编译与优化(待补充)
    06-字节码指令
    05-类文件结构
    04-垃圾回收(2)
    03-垃圾回收(1)
  • 原文地址:https://www.cnblogs.com/zawjdbb/p/6906038.html
Copyright © 2011-2022 走看看