在Java中,使用抽象类来实现接口,并不是毫无作用。相反,有时间有很大的作用。

当你只想实现接口中的个别方法(不是所有方法)时,你可以先写一个抽象类来实现该接口,并实现除了你想要的方法之外的所有方法(方法体为空)。接着再用你的类继承这个抽象类,这个类中就只用实现你需要的方法了,这样就可以达到你的需要了。但是,如果你直接实现接口的话,你就需要实现接口的所有方法。

通过下面例子,可以很好的理解:

例:有一个接口ListModel,有四个方法,addListDataListener(ListDataListener l),getElementAt(int index),getSize(),removeListDataListener(ListDataListener l)四个方法,程序员在设计页面时只关注对其返回指定索引处的值和返回列表的长度(getElementAt(int index)和getSize()),所以他只需要实现getElementAt(int index)和getSize()这两个方法,而其余两个不用实现。则设计如下:

//接口

interfaceListModel{

public void  addListDataListener(ListDataListener l);

public ObjectgetElementAt(int index);

public int  getSize();

public void   removeListDataListener(ListDataListener l)

}

/**

*抽象类,不实现需要的方法。而实现的不需要的方法的方法体设为空,

*/

abstract class AbstractListModel implementsListModel{

public void addListDataListener(ListDataListener l) {

listenerList.add(ListDataListener.class, l);

}

public void removeListDataListener(ListDataListener l) {

listenerList.remove(ListDataListener.class, l);

}

}

/**

* 具体实现类,实现特定的方法,该类中只有需要的方法

*/

public class MyListModel  extendsAbstractListModel {

public ObjectgetElementAt(int index){

//XXXXXXXXXXX

}

public int  getSize() {

//XXXXXXXXXXXXXXX

}

}

总结:抽象类有个好处就是,它可以有方法的具体实现,也可以不写方法的具体实现,而接口里是没有具体实现的。

一个类如果实现一个接口,那它必然要实现接口里的所有方法,而如果是扩展一个抽象类的话,子类里可以什么都不写或只写部分。

java抽象类实现接口_Java——抽象类实现接口相关推荐

  1. java抽象类和接口_Java抽象类和接口类

    Java中接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程问题? 1)类关键字修饰符: 抽象类使用abstract修饰,含有抽象方法(使用abs ...

  2. java 类 抽象类 接口_Java抽象类和接口

    抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方 ...

  3. php接口和java接口_java和php接口的区别是什么

    java和php接口的区别是:1.php接口中的抽象方法只能是public的,默认也是public权限:2.java中私有方法使用private修饰,供接口中的默认方法或者静态方法调用. [相关学习推 ...

  4. java 子类必须实现_Java学习之接口的子类必须实现接口的全部方法吗?

    接口的子类必须实现接口的全部方法吗? 接口的子类必须实现接口中全部的方法吗?答案:不是.原因如下: 如果子类是非抽象类,则必须实现接口中的所有方法: 如果子类是抽象类,则可以不实现接口中的所有方法,因 ...

  5. java编程思想 接口_java编程思想——接口

    接口与内部类为我们提供了一种接口与实现分离的更加结构化的方法. 1.抽象类与抽象方法 抽象类,作为普通的类和接口之间的一种中庸之道. 抽象方法:仅有声明而没有方法体,如abstract void pl ...

  6. java 定义抽象变量_Java抽象类和抽象方法定义与用法实例详解

    本文实例讲述了Java抽象类和抽象方法定义与用法.分享给大家供大家参考,具体如下: 一.Java抽象类 1.抽象类的说明 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都 ...

  7. java抽象类的属性_java抽象类详解

    前言 在没讲抽象类之前  我们先来看看 final关键字 final 修饰符 可以修饰 类.属性.方法 修饰类时  表示该类不能被继承   其他特征 跟普通的类一样 修饰 属性时 表示 改属性不能改变 ...

  8. java 抽象属性 设计_Java 抽象类与模板设计模式详解

    抽象类 抽象类是为了方法覆写而提供的类结构,因为其无法自身直接进行对象实例化操作,所以在实际应用中,抽象类主要目的是进行过程操作使用,当你要使用抽象类进行开发的时候,往往都是在你设计中需要解决类继承问 ...

  9. java list 接口_Java 集合 List接口

    [TOC] List接口 概述有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的 ...

  10. java接口与抽象类的优缺点_java抽象类与接口的比较

    l  语法: 抽象类: 1.如果一个类中有个方法时被声明为抽象方法,那么本类需要用abstract关键字声明: 2.抽象类的成员属性跟普通类没什么区别: 3.抽象类不能被直接实例化: 4.抽象类中的抽 ...

最新文章

  1. 【 FPGA 】FIR滤波器开篇之传统抽头延迟线FIR滤波器实现介绍
  2. 我如何进入Docker容器的shell?
  3. win7系统控制面板下的打开或关闭windows功能需要打开哪些功能
  4. 【大数据】如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系?
  5. 这大概是今年最值得推荐的“数据分析工具”
  6. ACM时间复杂度及算法的选择分析
  7. html生物代码,方舟生存进化全生物代码
  8. Java中文(汉子)转换拼音
  9. Pycharm-SSH连接服务器
  10. 【短视频运营】抖音推送机制 | 账号 “ 完播率 “ 数据
  11. 2021 年最漂亮的 Linux 发行版
  12. CSS小游戏2048—简单小游戏编程有手就行~会玩?你会写吗?
  13. 哈密顿圈 MATLAB程序,matlab求最佳哈密顿圈遇到错误
  14. 跟着老陈学嵌入式-C语言入门之类Linux编译环境搭建
  15. 据说只有高端机器才配运行K8S,网友:1G内存的渣渣跑起来了!
  16. 神啊,请让我丑一点吧
  17. 数论数学:欧拉恒等式的证明
  18. Windows下安装Composer的详细教程
  19. MathType快捷键大全
  20. 计算机上的做蛋糕游戏,做蛋糕烹饪游戏电脑版

热门文章

  1. Supervisor多进程管理 异常自动重启 可视化管理
  2. Google Earth Engine(GEE)——Landsat8 TOA 影像去云
  3. Windows下IIS+PHP+MySQL环境搭建,建义收藏,不然等下就不见了)
  4. Android-软键盘一招搞定(实践篇)
  5. java中定义一个数学家类,java每日一练(19_04_06)|类、继承—— 抽象类
  6. 如何将自己的网站主页提交到百度
  7. 少儿编程,打响2021中国教育改革第一枪
  8. 无法启动T-SQL调试,未能连接到计算机,工作站服务没有启动
  9. execute、executeUpdate、executeQuery三者的区别及返回值
  10. 王思聪:共享充电宝能成我吃翔,陈欧问有人赞助翔吗?