抽象和接口的不同

  1. 接口只有定义, 欺负不能再接口中实现, 只有实现接口的类才能实现接口中定义的方法, 而抽象类可以定义和实现, 即其方法可以在抽象类中被实现
  2. 接口需要实现(implements),但抽象类只能被继承(extends) 。一个类可以实现多个接口, 但是只能继承一个抽象类, 因此使用接口可以间接的的达到多重继承的目的
  3. 接口强调特定功能的实现,其设计理念是“has-a”关系,而抽象类强调的是所属关系,七设计理念是“is-a”关系
  4. 接口中定义的成员变量默认为 public static final, 只能够有静态的不能被修改的数据成员, 而且,必须给其赋值,其所有成员方法都是public、abstract的,而且只能被这两个关键字修饰。
    抽象类可以有自己的数据成员变量,也可以有非抽象的方法,而且抽象类中的成员变量默认为default(本包可见),当然也可以被定义为 private、 protected 和 public 这些成员变量可以在子类中被重新定义, 也可以被重新赋值,抽象类中的抽象方法(其前有abstract)不能用 private、 static、synchronized、native等访问修饰符修饰,同时方法必须以分号结尾,并且不带花括号。
    所以当功能需要积累是,用抽象类; 不需要积累时, 用接口
  5. 接口被运于实现比较常用的功能, 便于日后维护或者添加删除方法; 而抽象类更倾向于充当公共类的角色,不适合用于日后重新对立面代码进行修改
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,686评论 0 11
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,136评论 0 62
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 虽然我们早在2013年9月就认识,但是在这里我想从属于我们的那天开始说起。 2015年7月10日,前一天我们还在考...
    枫之沐阅读 619评论 1 3