接口与抽象类区别

接口和抽象类有什么区别

你选择使用接口和抽象类的依据是什么?

接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。

抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。

人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.

所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

第一点. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
第二点. 接口可以多继承,抽象类不行
第三点. 接口定义方法,不能实现,而抽象类可以实现部分方法。
第四点. 接口中基本数据类型为static 而抽类象不是的。

当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

抽象类的功能要远超过接口,但是,定义抽象类的代价高。因为高级语言来说(从实际设计上来说也是)每个类只能继承一个类。在这个类中,你必须继承或编写出其所有子类的

所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的

http://blog.csdn.net/fenglibing/article/details/2745123

时间: 2024-08-28 02:43:02

接口与抽象类区别的相关文章

Java 接口和抽象类区别

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

Java 接口和抽象类区别(写的很好,转了)

原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了.当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 .面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用. 说到了抽

接口和抽象类区别

以前自己一直分不清抽象类和接口的区别,当然语法上的区别看了语法大家都懂,但是在真正使用的时候,你可以确定使用接口还是抽象类么?个人觉得这由一下几个方面决定: ①面向对象思想(对事物的认知和分类) ②站在思想的层面上区分接口和抽象类(本质) ③业务上的续需求 首先来说第一点,面向对象的思想(对事物的认知和分类).就比如说:奥迪,你认为它是一辆汽车:波音飞机,你认为它是一架飞机:如果现在有一辆像龙珠里面的那种会飞的车,就叫飞车吧.那你认为它是数据汽车还是飞机呢?其实这并没有确切的答案,根据具体业务,

java的接口和抽象类区别

转自:深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式

JAVA之接口与抽象类区别

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

2/接口与抽象类区别

1//. 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况.不能创建abstract 类的实例.然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例.不能有抽象构造函数或抽象静态方法.Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为.取而代之,在子类中实现该方法.知道其行为的其它类可以在类中实现这些方法.接口(interface)是抽

JAVA接口与抽象类区别

接口 1.接口可以继承多个接口,extends 接口1,接口2,接口3 2.接口的成员变量默认是public static abstract,必须初始化的: 3.接口只能有抽象方法,继承接口的类必须实现所有的抽象方法,但是如果是抽象类的话,就可以不实现. 4.接口的方法都是public abstarct的,隐式声明: 5.接口没有构造方法,不能直接实例化: 抽象类 1.抽象类不能生成对象,只能被继承使用: 2.抽象方法必须在抽象类中: 3.抽象类中的方法可以abstarct,也可以进行实现: 4

接口和抽象类区别。

abstract class 犬{ abstract void 吃(); abstract void 叫();}interface 犬{ abstract void 吃(); abstract void 叫();}添加一个功能,缉毒.单独描述一个缉毒功能犬.class 缉毒犬 extends 犬{ void 吃(){} void 叫(){} void 缉毒(){}} class 缉毒犬 implements 犬{ void 吃(){} void 叫(){} void 缉毒(){}}缉毒犬是犬中的

接口和抽象类的作用以及区别

首先分析什么是抽象类,什么是接口. 抽象类,首先是个类,类是对现实世界中对象的建模模型,抽象类是对类整体的抽象描述,包含方法,以及属性.接口是对类某特性行为的抽象. 对抽象类的继承才是Is-A的关系,对接口的实现,则是"有没有"的关系.比如鸟和飞机都有飞行这个特性,这个时候可以把飞行这个特性设计为接口:IFly.然后再让Airplane和Bird实现IFly这个接口,这样Airplane和Bird则拥有了飞行这个属性. 接口和抽象类都含有抽象方法,抽象方法是只有方法骰没有方法体,使用接