在《大话设计模式》这本书中,我会听到这个字眼“对接口编程”,而在文中的类图中。会提出这样一个疑问?为什么有的用的是:接口?有的用的是抽象类呢?

本文主要介绍下面内容:接口、抽象类。

文章的最后,会给出软考下午设计模式题中的一些做题技巧

• 什么是接口?
    接口是包括一组虚方法的抽象类型,当中每一种方法都有其名称、參数和返回值。

接口方法不能包括不论什么实现,CLR 同意接口能够包括事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。

注意:一个类能够实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的全部方法。还要实现该接口从其它接口中继承的全部方法。

• 什么是抽象类?
    抽象类提供多个派生类共享基类的公共定义,它既能够提供抽象方法,也能够提供非抽象方法。

抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new keyword,也不能被密封。假设派生类没有实现全部的抽象方法,则该派生类也必须声明为抽象类。

• 对照分析

• 考试秘籍

以下从软考设计模式的做题技巧入手。提供一些參考:(以Java语言为例)

抽象类用keywordabstract声明,用extends继承。

抽象类的目的是定义一个框架。规定某些类必须具有的一些共性。抽象方法:没有函数体的方法

  注意:包括抽象方法的类,一定是抽象类。

       抽象类的直接派生类必须实现其抽象方法。抽象类仅仅能用于继承,不能用于创建对象(所谓的new)。

接口用keywordinterface声明,keywordimplements实现。接口用于替代多继承的概念。

  注意:直接继承了接口的类。必须实现接口中的抽象方法;间接的则能够实现,也能够不实现。

区分:

  1、接口和抽象类都不能创建对象。

  2、抽象类不能參与多继承,抽象类能够有非静态的成员变量,能够有非抽象的方法;

  3、接口能够參与多继承。全部的属性都是静态常量。全部的方法都是public方法。

对接口编程:接口和抽象类相关推荐

  1. 面向对象编程(十五)——抽象类和接口

    一.抽象(abstract)类 抽象类,说白了就是包含抽象方法的类.那什么是抽象方法?抽象方法是一种特殊的方法:抽象方法只有声明,而没有具体的实现.抽象方法说白了就是只有方法的声明,没有方法体. 抽象 ...

  2. (转帖)对抽象编程:接口和抽象类

    [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类-王涛 [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类 Author:王涛 Date:2007-4-12 ©2007 Anytao ...

  3. [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类

    本文将介绍以下内容: • 面向对象思想:多态 • 接口 • 抽象类 1. 引言 在我之前的一篇post<抽象类和接口的谁是谁非>中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论 ...

  4. Java面向对象编程篇3——接口与抽象类

    Java面向对象编程篇3--接口与抽象类 1.接口(interface) 接口中可以含有变量和方法.但是要注意,接口中的变量会被隐式地指定为public static final变量(并且只能是pub ...

  5. python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  6. 对抽象编程:接口和抽象类

    本文将介绍以下内容: • 面向对象思想:多态 • 接口 • 抽象类 1. 引言 在我之前的一篇post<抽象类和接口的谁是谁非>中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论 ...

  7. 面向对象编程(七):接口(抽象类)

    C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现. C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念. 如果类中至 ...

  8. 有关接口和抽象类的问题

    1. 一个子类如果implements一个接口,就必须实现接口中的所有方法(不管是否需要):如果是继承一个抽象类,只需要实现需要的方法即可,这是抽象类的一个优点 2. 如果一个接口中定义的方法名改变了 ...

  9. Java 接口和抽象类可以被new么?

    背景: 最近有同事跟我说了他面试时遇到的问题,考官问:"接口和抽象类可以被new嘛?".这可能不是考官的原话,但是据他表达考官大概就是这个意思了.听到这个问题,我的第一反应是肯定不 ...

最新文章

  1. MapReduce01
  2. 娱美德投入千万研发 揭秘韩国第一游戏引擎
  3. MVC4将Controller与views分开
  4. linux7为nginx添加服务,CentOS7添加Nginx为系统服务
  5. jQuery验证插件
  6. bin code led_-/bin/sh: ./led: not found的解决办法
  7. matlab 创建图形对象,创建坐标轴图形对象
  8. vue基础之组件(创建,data,切换,父子以及同级之间的传值,插槽solt)
  9. 190728-flink官方文档阅读和实战记录
  10. 【JavaEE】ch09-反射
  11. mid制作乐谱_CuteMIDI简谱打谱软件(midi音乐制作器)V8.5.1 安装版
  12. 电视视频直播在线播放网站PHP源码V1.2
  13. MySQL技术内幕 InnoDB存储引擎 第2版 下载
  14. 安卓仿苹果键盘输入法_仿ios输入法安卓版
  15. 机器学习中的 Shapley 值怎么理解?
  16. 帝国网站mysql 数据库开发_帝国cms phpmyadmin数据库操作及密码修改
  17. 学java怎么做兼职?学Java什么程度才能找兼职?
  18. 【游戏客户端】剧情系统
  19. 常见浏览器兼容性问题大全
  20. android混淆那些坑

热门文章

  1. CSS3属性之圆角效果——border-radius属性
  2. CentOS7安装Docker与使用篇
  3. linux进程控制命令
  4. ListView上移 和下移
  5. 3、PV、UIP、UV指的是什么
  6. opencv中查看mat位图的像素幅度(Cv::matStep)
  7. x86的32位汇编快速入门
  8. 计算机网络在实践教学,高职计算机网络技术实践教学研究
  9. python flask框架剖析_python flask框架实现传数据到js的方法分析
  10. 用软件测试管理效率,软件测试攻略(一):效率工具分享