`
fishswing
  • 浏览: 41396 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

Java——抽象类实现接口

阅读更多

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

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

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

      例:有一个接口Window,有三个方法,draw(),putColor(),setPosition()三个方法,程序员在设计页面时只关注对其进行位置定位(画图draw()和着色putColor()则由美工实现),所以他只需要实现setPosition()方法,而其余两个不用实现。则设计如下:

      //接口

      interface Window{

             public void draw();

             public void putColor();

             public void setPosition();

      }

 

     /**

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

      */    

     abstract class DesignedPage implements Window{

             public void draw(){}

             public void putColor(){}

     }

     

     /**

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

       */

      public class DesingedPageA  extends DesignedPage{

             public void setPosition(){

                   //set the window position

             }   

    }

 

  

     通常情况下,如果我们需要在具体实现类中实现draw()方法时,都是调用父类的draw()方法(super.draw())。

 

 

  

     

 

2
4
分享到:
评论
4 楼 dtzheng 2017-09-22  
在业务比较复杂时,开始先抽象出未实现的接口,然后把确定且重复的接口实现在抽象类中,最后在一个或多个子类(一般有多个子类)中实现未实现的接口方法。这样做有两个好处:1,抽象分层,逻辑清晰;2,多人合作中分工明确,每个人负责的业务子类只需要实现自己的接口就好,重复的就直接调用抽象类已实现的。Java源码中最明显得例子就是HashMap先继承抽象类AbstractMap,AbstractMap是实现了Map接口的抽象类。这是我在学习我们的架构师在设计很多接口时用到的,勿喜可喷 
3 楼 lgw1860 2016-05-07  
项目做大时 很有用,
java源代码中 常用的技巧
2 楼 Dayday_lx 2014-05-16  
1927105 写道
LZ想说啥?



这个帖子比较久,今天才看见。呵呵
对于1楼的发言,我想说的是,楼主表达的意思是:

众所周知普通类如果实现一个接口,那么普通类需要重写接口中的所有方法
但是抽象类实现借口,可以完全覆盖/重写 接口中的方法,也可只重写接口中的某几个方法

子类再继承抽象类时,子类重写的方法即为抽象类中未重写接口中的方法。

这只是一种设计方式而已。
1 楼 1927105 2012-05-14  
LZ想说啥?

相关推荐

    面向对象程序设计与实践-Java抽象类和接口[33页].pptx

    面向对象程序设计与实践 第五章 Java抽象类和接口 面向对象程序设计与实践课程组 面向对象程序设计与实践-Java抽象类和接口[33页]全文共33页,当前为第1页。 教学目标 教学方式 重点知识 学习目标 1.熟悉抽象类的...

    Java期末复习——枚举与反射机制

    Java——枚举: enum关键字、Enum类 类集对枚举的支持——EnumMap类与EnumSet类 枚举类实现接口、在枚举类中定义抽象方法 Java反射机制: Class类、Class类的使用 反射的应用:取得类的结构

    java设计的4种模式

    它实现接口或抽象类定义的方法和属性。 使用场景: ● 不希望或不适用使用继承的场景 ● 接口或抽象类不稳定的场景 ● 重用性要求较高的场景 注意: 发现类的继承有 N 层时,可以考虑使用桥梁模式。桥梁模式主要考虑...

    Java实验报告——类的继承、多态的应用

    1、实验名称:类的继承、多态的应用 2、代码内容:学生管理类 3、【实验目的】 (1)进一步熟悉抽象类和抽象方法的定义 (2) 进一步掌握集成和多态的实现方式。

    Java —— 手动实现基于二分搜索树的集合

    * 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。 * 接口并不是类; 接口包含类要实现的方法。 * 一个类通过实现接口的方式,从而来实现接口的抽象方法。 * 接口中的方法是不能在接

    《Java开发实战经典》——学习攻略

    4、Java数据库操作(JDBC):JDBC首先并不能算是一门技术,更多的应该算是一种服务 —— Java提 供的数据库访问服务,里面提供了大量的操作接口,各个数据库生产商根据这些接口实现自己的数据库操作,从面向对象的...

    Java入门1·2·3——一个老鸟的Java学习心得 高清pdf

    第2篇为Java语言高级语法,包括类、对象、方法、继承、多态、修饰符、接口、抽象类、内部类、Java异常处理和多线程编程。第3篇为Java语言编程进阶,包括Java编程常用知识、Java文件编程、Java文件I/O编程、Java TCP...

    Java私塾——《深入浅出学Java开发初级》系列精品教程

    学习Java开发初级部分的知识(1-3章) 第一章:Java入门 第二章:Java基础语法 第三张:Java类和对象 第四章:Java高级类特性 第五章:数组和枚举 第六章:常见累的使用 第七章:抽象类和接口 第八章:异常和断言

    DataStructureJava:主要数据结构——java中的简单实现

    数据结构Java 主要数据结构——java中的简单实现如何使用集合:-> JDK(Java集合)-> Guava(谷歌)-> Commons-collections(Apache) 主要抽象数据结构——ADS列表(ArrayList、LinkedList、Vector)栈(FIFO)队列...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

     abstract 说明一个类为抽象类,抽象类是指不能直接实例化对象的类。  final 说明一个类为最终类,即改类不能再有子类。  public 说明类为公共类,该类可以被当前包以外的类和对象使用。  private 说明类为...

    java面向对象程序设计课程每章ppt(共15章+复习1章).zip

    第10章 static修饰符.pptx 第10章 枚举.pptx 第11章 异常和断言.pptx 第12章 JDK8中的日期.pptx 第12章 字符串、日期.pptx ...第6章 抽象类和接口.pptx 第7章 多态.pptx 第8章 包装器类.pptx 第9章 内部类.pptx

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    基本信息 作者: 臧萌 ...12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349...

    现代编译器的Java实现

    本书还讲述了通用的编译器实现技术,包括代码生成、寄存器分配以及大多数书籍未涉及的函数式编程语言和面向对象语言,并用实际的Java类详细说明了编译器各模块间的接口。 本书的第一部分——编译器基础,适合作为第...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    基本信息 作者: 臧萌 ...12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349...

    JAVA基础入门教程

    z 类的继承(抽象类、接口、包、内部类)、数组、字符串 z Java异常处理机制 z Java基本类库介绍 z Java多线程编程 z Java I/O 流(character Stream, byte Stream, serialization) z Java Collections Framework z ...

    java程序设计-基于Java 实现经典扫雷游戏(含源码+详细说明文档)

    java程序设计——基于Java 实现经典扫雷游戏(含源码+详细说明文档) 说明文档部分内容: 本扫雷游戏有以下**功能**: 1. 如果点中炸弹会显示炸弹。 2. 玩家左键点击方块能显示该方块周围会出现几个炸弹,如果不...

    java初学者必看

    10.1.3 抽象类实现接口 10.1.4 派生接口 10.1.5 Comparable接口 10.1.6 Comparable接口应用 10.1.7 接口中定义常量 10.1.8 Cloneable接口 10.1.9 Cloneable接口应用 10.1.10 抽象类与接口区别 10.2 内部类...

    Java开发详解.zip

    020609_【第6章:面向对象(高级)】_抽象类与接口的应用笔记.pdf 020610_〖第6章:面向对象(高级)〗_实例分析:宠物商店笔记.pdf 020611_【第6章:面向对象(高级)】_Object类笔记.pdf 020612_【第6章:面向对象...

    【后端】java基础(5.5)java高级基础之接口

    前面的章节我们讲的内容一直基于类,本章开始引入一个新的概念——接口。 首先我们来创建一个接口: 创建一个工程——创建包——右键包名——New...今天我们要学习的接口这方面的和抽象类相似,但是接口却不是类,它要

Global site tag (gtag.js) - Google Analytics