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

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

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

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

? 什么是接口?

接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR 允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。

注意:一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的所有方法。

? 什么是抽象类?

抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new 关键字,也不能被密封。如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类。

? 对比分析

? 考试秘籍

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

抽象类用关键字abstract声明,用extends继承。抽象类的目的是定义一个框架,规定某些类必须具有的一些共性。抽象方法:没有函数体的方法

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

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

接口用关键字interface声明,关键字implements实现。接口用于替代多继承的概念。

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

区分:

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

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

  3、接口可以参与多继承,所有的属性都是静态常量,所有的方法都是public方法。

? 结论

本文基本概况了接口和抽象类的概念、异同和使用规则。但是,对于面向对象和软件设计的深入理解,还是建立在不断实践的基础上。

对接口编程:接口和抽象类,布布扣,bubuko.com

时间: 2024-10-05 21:16:25

对接口编程:接口和抽象类的相关文章

C#OOP之八 继承 接口和抽象类

继承 在现实生活中有所谓的"种瓜得瓜.种豆得豆"的说法,在生物学概念上就是"遗传"的概念,在面向对象中"继承"就类似于生物学中的遗传,通过继承,可以更好的实现代码的重用(复用,多次使用的意思).增加扩展性.简化代码等. 下面是现实生活中的引用: 定义与使用继承 继承一次最常用的就是通过合法程序(比如遗嘱)从别人那里接受财产或爵位等,有点类似于世袭制. 另外一个含义,是人从父母那里继承一些特征,如果孩子从父母继承的身高.相貌等特征.那么在什么情况下

从接口、抽象类到工厂模式再到JVM来总结一些问题

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习! 涉及到的知识点总结如下: 为什么使用接口? 接口和抽象类的区别 简单工厂模式总结 Java中new和newInstance的区别 Java的Class.forName(xxx); Java里创建对象的几个方式总结 Java类加载机制总结 Java WEB的三层架构和MVC的关系 工厂方法模式总结 抽象工厂模式总结 一道面试题的分析 一个服务提供者框架的学习 接口的另一常用法:策略模式 参考资料 先看这样一个场景:某个果园里现在有

接口和抽象类的区别 --相信你看完不会再混淆了

我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到“面向接口编程”这个短语,那么它是什么意思?有什么思想内涵?和面向对象编程是什么关系?本文将一一解答这些疑问. 1.面向接口编程和面向对象编程是什么关系 首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分.或者说,

java的接口和抽象类的理解

Java接口和抽象类用法总结,使用场景 分类: java 2014-07-09 15:22 279人阅读 评论(0) 收藏 举报 原文转载自:http://yinny.iteye.com/blog/1152430 接口 1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口. 2 接口里面的成员变量默认都是public static final类型的.必须被显示的初始化. 3 接口里面的方法默认都是public abstract类型的

接口和抽象类的区别(经典)

转至http://yinny.iteye.com/blog/1152430#bc2372045 接口和抽象类的区别: 1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做.     2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法     3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现. 所以,抽象类是为了简化接口的实现,他不仅提供了公共方法的实现,让你可以快速开发,又允许你

第十五节(多态,接口和抽象类的区别,类之间的关系)

多态的定义: 1. 多态是同一个行为具有多个不同表现形式或形态的能力 2. 多态性是对象多种表现形式的体现 比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫.小狗.蜥蜴等等. 那么我到宠物店说"请给我一只宠物",服务员给我小猫.小狗或者蜥蜴都可以,我们就说"宠物" 这个对象就具备多态性. 多态的条件是:有继承或实现,有方法覆盖或实现,父类对象(接口) 指向子类对象 public class Animal{ // 成员方法 pub

接口和抽象类的异同点

GPS平台.网站建设.软件开发.系统运维,找森大网络科技!http://cnsendnet.taobao.com来自森大科技官方博客http://www.cnsendblog.com/index.php/?p=513 什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称.参数和返回值.接口方法不能包含任何实现,CLR允许接口可以包含事件.属性.索引器.静态方法.静态字段.静态构造函数以及常数.但是注意:C#中不能包含任何静态成员.一个类可以实现多个接口,当一个类继承某个接口时,

Java 接口和抽象类区别

1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了.当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 .面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用. 说到了抽象,我就不能不提到曾让我头痛的Java接口和Java抽象类了,这也是本文我想说的重点. 既然面向对象设计的重点在于

深入理解Java的接口和抽象类

对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/