Java中interface接口与abstract class抽象类的区别 interface和abstract class是Java中实现多态的基础,都很有用,但也有一些区别:
interface被继承时用的关键字是implements,而且可以同时implements多个interface,而abstract class被继承时用的关键字是extends,而且只能同时extends一个abstract class。
interface内定义的方法都是public的,而abstract class内的则不一定。
interface内定义的成员对象都是static & final的,而abstract class不是
interface的方法不能有默认实现,只有一个申明,而abstract class内申明abstract的方法不能有实现,非申明abstract的方法可以有默认实现。
interface被implements时,所有方法都必须被实现,必须申明是public的,而abstract class被extends时只有abstract的方法才必须被实现,别的有默认实现的直接被继承过来。

例子:
public interface Instrument {
    int i = 5; //static & final
    //can't have method definitions:
    void play(); //automatically public
    void adjust();
}

public abstract class AbstractCachedTable {
    public Hashtable table = new Hashtable();
    abstract public void refresh();
    public Object get(Object o) {
        Object target = null;
        target = table.get(o);
        return target;
    }
}

一般情况下,建议使用interface(因为能同时implements多个interface的特性,能更好地实现多态),当需要有默认实现和成员对象时才考虑abstract class。

摘自:http://guixian.iteye.com/blog/185763

转载于:https://blog.51cto.com/2197042/1157083

Java中interface接口与abstract class抽象类的区别相关推荐

  1. java中的接口的定义以及实现关系

    一.什么是接口? - 硬件接口:设备之间的连接方式 - 软件接口:程序代码,特殊的类,表示一种规范,是具有N个方法的特征集合. java中的接口: 专家说的多个抽象类的抽象就是接口. interfac ...

  2. java中的接口是什么?

    接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是类,编写接口 ...

  3. Java中实现接口与继承的区别

    ** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...

  4. Java中的接口命名[关闭]

    本文翻译自:Interface naming in Java [closed] Most OO languages prefix their interface names with a capita ...

  5. java中接口什么时候用_我什么时候应该在java中使用接口?

    在Java中精确使用接口的一个很好的例子将是理想的,适用于任何特定的规则. 看看丹以前所有的问题,他似乎只是逐字逐句地张贴家庭作业/考试问题. 令人惊讶的是,这些不是考试题或其他-今天才找到这个网站, ...

  6. java中函数式接口的使用

    java中函数式接口的使用 一.自己创建的函数式接口 1.1 概念 只存在一个抽象方法的接口. 1.2 使用步骤: 1.创建函数式接口,创建格式参照使用格式. 2.创建一个实例类 3.在实例类中使用函 ...

  7. Java中实现接口的三种方式您造吗?

    本文介绍了Java中实现接口的三种方式:常规实现方式.匿名内部类和 Lambda表达式实现方式.希望已经了解的同学可以重新温习一下,不了解的同学则从中受益! Java中接口最常规的实现方式 同学们都会 ...

  8. implements在java,implements在java中实现接口的方法

    本教程操作环境:windows7系统.java10版,DELL G3电脑. 1.概念 (1)关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法. (2)接口在 ...

  9. Objective-C 入门(七)协议 protocol(JAVA中的接口)

    Objective-C 入门(七)协议 protocol(JAVA中的接口) 接口的作用想必大家都比较了解 OV中的 protocol 相比接口作用相似 语法稍有不同 1.先来看声明一个协议 在创建文 ...

  10. Java 中 Comparable 接口的意义和用法.

    在之前的博文中已经介绍了Java中Collection 接口和 Collections类. http://blog.csdn.net/nvd11/article/details/21516075 一, ...

最新文章

  1. FauxPas试用时间破解
  2. yii2 postman 文件上传
  3. 网站推广——网站推广专员面对新站收录展开多角度思考
  4. (9)MSP430F5529 定时器Timer_A
  5. 天猫双11凭什么达到1682亿?这些支撑技术或许可以告诉你
  6. 怎么查这个文件在linux下的哪个目录
  7. php 继承多个接口,PHP接口多继承及tarits实现多继承效果的方法
  8. php7.0康乐安装_Ubuntu安装php7.0环境
  9. 数据传输服务 DTS > 数据迁移 > 从自建数据库迁移至阿里云 > 源库为MySQL > 从自建MySQL迁移至RDS MySQL
  10. hadoop中的helloword
  11. .net平台调用(P/Invoking)查询网站
  12. python web 模版引擎集合
  13. 用陆地卫星 TM6数据演算 地表温度的单窗算法
  14. html好看鼠标光标特效
  15. 【光学】Matlab模拟相互垂直的光波叠加
  16. 人月神话之四 贯彻执行、为什么巴比伦塔会失败
  17. 服务器上网站被劫持,网站被劫持怎么办,网页被劫持快速解决办法
  18. 计算机操作员考试模拟在线考试,计算机操作员高级问答集考试卷模拟考_试题...
  19. 微信支付成功,如何刷新用户当前页面的余额
  20. axios的响应拦截器 - 错误统一处理 / 获取数据繁琐

热门文章

  1. Arturia Pigments for Mac - 数字波表双引擎合成器插件
  2. n-Track Studio Suite 9 Mac(多轨音乐制作工具)
  3. 使用iMazing为iPad添加PDF文档
  4. 通过FD耗尽实验谈谈使用HttpClient的正确姿势 1
  5. xshell连接虚拟机(后续)
  6. 《Java从小白到大牛》之第13章 抽象类与接口
  7. Java并发编程笔记之ArrayBlockingQueue源码分析
  8. 递归--练习6--noi1755菲波那契数列
  9. linux下led灯驱动程序
  10. 比尔盖茨这样审查项目 1