小工具      在线工具  汉语词典  css  js  c++  java

抽象类实现接口的意义

设计模式,抽象类 额外说明

收录于:112天前

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

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

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

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

      //接口

      interface Window{undefined

             public void draw();

             public void putColor();

             public void setPosition();

      }

 

     /**

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

      */    

     abstract class DesignedPage implements Window{undefined

             public void draw(){}

             public void putColor(){}

     }

     

     /**

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

       */

      public class DesingedPageA  extends DesignedPage{undefined

             public void setPosition(){undefined

                   //set the window position

             }   

    }

 

  

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


. . .

相关推荐

额外说明

前后端分离的情况下,全局字体格式如何设置?

目录 1、创建 font 文件夹 2、创建 font.css文件 3、全局注册 4、全局使用 1、创建 font 文件夹

额外说明

MFC组合,无线电控制使用

1. 下拉框combo控件 Data中输入,默认值。还可以在OnInitDialog()增加项目,设置默认值。 新建控件变量m_combo_Num 2. 单选框radio控件 新建一组单选框控件 在第一个,Group设置为True,其他不变。在遇到下一个

额外说明

超详细pytest教程(三)——用例标记和测试执行

pytest用例标记和测试执行篇 上一篇文章入门篇咱们介绍了pytest的前后置方法和fixture机制,这个章节主要给大家介绍pytest中的标记机制和用例执行的方法。pytest可以通过标记将数据传入于测试函数中,也可以通过标记中对执行的用例做筛选,

额外说明

Vue —— 进阶 Vuex(零)(概念、工作原理、环境搭建、基本使用、getters)

Vue2.x 系列文章目录 内容 参考链接 Vue2.x - 基础 Vue2.x - 基础 Vue2.x - 进阶 Vue2.x - 进阶脚手架 Vue2.x - 高级 Vuex Vuex概念、工作原理、环境搭建、基本使用、getters Vue2.x

额外说明

Redis数据库和SpringBoot的故事|这一篇就够了(超详细)

-作者简介:练习时长两年半的Java up主 -个人主页:老茶icon - ps:点赞-是免费的,却可以让写博客的作者开兴好久好久- -系列专栏:Java全栈,计算机系列(火速更新中) - 格言:种一棵树最好的时间是十年前,其次是现在 -动动小手,点个关

额外说明

使用http-proxy-middleware解决前端开发中跨域的问题

一、使用http-proxy-middleware中间件解决跨域问题 本案例中使用基本的webpack及axios请求数据的插件 1、后端服务是用tornado创建的一个服务(可以根据自己熟悉的搭建一个后端服务器) ... class JsonHandl

额外说明

AI实战营第二期 第八节 《MMSegmentation代码课》——笔记9

AI实战营第二期 第八节 《MMSegmentation代码课》 【课程链接】https://www.bilibili.com/video/BV1uh411T73q/ 【讲师介绍】张子豪 OpenMMLab算法工程师 【学习形式】录播+社群答疑 【作业布

额外说明

CSS(七)元素过渡、变化、动画

目录 一、元素动效 1. 过渡 - transition   2. 变化 3. 动画 一、元素动效 1. 过渡 - transition           过渡为一个元素在不同状态之间切换不同的过渡效果,由过渡属性的名称、过渡需要的时间、过渡的方式、过

额外说明

Windows系统因丢失msjava.dll文件导致程序异常的解决办法

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个msjava.dll文件(挑

额外说明

api-ms-win-core-string-l1-1-0.dll文件丢失找不到如何解决?

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个api-ms-win-core-string-l1-1-0.d

ads via 小工具