详解abstract class和interface的本质
解决方案二 既然open close和alarm属于两个不同的概念 根据ISP原则应该把它们分别定义在代表这两个概念的抽象类中 定义方式有 这两个概念都使用abstract class方式定义 两个概念都使用interface方式定义 一个概念使用abstract class方式定义 另一个概念使用interface方式定义 显然 由于Java语言不支持多重继承 所以两个概念都使用abstract class方式定义是不可行的 后面两种方式都是可行的 但是对于它们的选择却反映出对于问题领域中的概念本质的理解 对于设计意图的反映是否正确 合理 我们一一来分析 说明 如果两个概念都使用interface方式来定义 那么就反映出两个问题 我们可能没有理解清楚问题领域 AlarmDoor在概念本质上到底是Door还是报警器? 如果我们对于问题领域的理解没有问题 比如 我们通过对于问题领域的分析发现AlarmDoor在概念本质上和Door是一致的 那么我们在实现时就没有能够正确的揭示我们的设计意图 因为在这两个概念的定义上(均使用interface方式定义)反映不出上述含义 如果我们对于问题领域的理解是 AlarmDoor在概念本质上是Door 同时它有具有报警的功能 我们该如何来设计 实现来明确的反映出我们的意思呢?前面已经说过 abstract class在Java语言中表示一种继承关系 而继承关系在本质上是 is a 关系 所以对于Door这个概念 我们应该使用abstarct class方式来定义 另外 AlarmDoor又具有报警功能 说明它又能够完成报警概念中定义的行为 所以报警概念可以通过interface方式定义 如下所示 abstract class Door { abstract void open() abstract void close() } interface Alarm { void alarm() } class AlarmDoor extends Door implements Alarm { void open() { … } void close() { … } void alarm() { … } } 这种实现方式基本上能够明确的反映出我们对于问题领域的理解 正确的揭示我们的设计意图 其实abstract class表示的是 is a 关系 interface表示的是 like a 关系 大家在选择时可以作为一个依据 当然这是建立在对问题领域的理解上的 比如 如果我们认为AlarmDoor在概念本质上是报警器 同时又具有Door的功能 那么上述的定义方式就要反过来了 结论 abstract class和interface是Java语言中的两种定义抽象类的方式 它们之间有很大的相似性 但是对于它们的选择却又往往反映出对于问题领域中的概念本质的理解 对于设计意图的反映是否正确 合理 因为它们表现了概念间的不同的关系(虽然都能够实现需求的功能) 这其实也是语言的一种的惯用法 希望读者朋友能够细细体会 对于abstract class和interface的本质区别的内容就向你介绍到这里 希望对你了解和学习abstract class和interface有所帮助 lishixinzhi/Article/program/Java/hx/201311/25893
abstract什么意思
什么是抽象抽象是一种概括性的表述,它可以将一个概念或者事物描述得更加清晰简洁。在英文中,“abstract”一词有多种含义,但最常见的含义就是“抽象的”。因此,“abstract什么意思”的答案就是“抽象”。抽象的定义 在字面上,抽象可以被定义为从一个概念中抽取出来的结果,而这个概念可以是一个事物...
abstract中文是什么意思?
Abstract的中文意思是“摘要”或“抽象”。以下是 摘要的含义:在中文语境中,“抽象”一词通常用来描述一种概括性的、不具体涉及细节的内容。当该词与文章、报告等文本内容结合时,摘要指的是对整篇文章或报告的核心内容、主要观点、研究目的和方法的简短概述。它帮助读者快速了解文本的主题和核心内容,为...
abstract怎么读
abstract 的基本意思是“抽象的,观念上的,理论的”,可与个别情况相对,也可与具体经验相对。多指品质或特征,而不指物体或事实。有时意味着脱离现实,而且缺乏对实际事物的专门实用性,引申可作“难懂的; 过于深奥的”解。abstract用于艺术作品时可指“抽象派的”。abstract作“抽象的”“抽象派的”解时不...
abstract中文翻译
abstract的读音:英 [ˈæbstrækt];美 [ˈæbˌstrækt]释义:adj.抽象的,理论上的;难解的;抽象派的;茫然的;n.抽象概念;抽象派艺术作品;摘要;[化]萃取物;vt.提取,分离;转移(注意等);概括,摘录;剽窃 变形:复数:abstracts过去式:...
abstract什么意思
摘要,实质上是文章精华的缩影,其目的是以不超过100字的篇幅,精炼地概述一篇论文、文章或报告的核心内容。它涵盖背景、目的、方法、成果和结论,旨在让读者在短时间内洞悉全文关键信息,决定是否深入阅读。摘要的价值在于提供快速的阅读指南,无论是对潜在的研究者,还是学术期刊或会议的编辑,它都是理解...
英文摘要是什么意思?
“以英文摘要是什么意思”这个标题所指的是英语学术写作中的“abstract”部分。在论文、报告、文章等文献中,abstract作为对主体内容的简洁概括,给读者提供了快速了解文献内容的途径。通常,abstract都在文献正文之前,写在一个独立的页上,长度一般在150-250个单词之间。一般来说,abstract应该包括论文的主要...
毕业论文abstract怎么写
首先,明白abstract的意义:Abstract:摘要。是对研究论文的简短总结,一般出现在开头部分。Abstract简明扼要地报告了研究目的和结果,是一篇论文中最浓缩的精华。以便读者能够快速而确切地知道这篇论文所描述的研究工作是关于什么的。其次,Abstract需要说清楚四件事:本文研究问题和目标:Abstract首先要明确论文...
解释一下:abstract="true",parent="baseDao",name="target"这三个东西...
Abstract(抽象)可以修饰类、方法 如果将一个类设置为abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。 Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。 Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。 Final和abstract...
abstract怎么读英语
abstract读作[ˈæbstrækt],意思是摘要。摘要又称概要、内容提要,意思是摘录要点或摘录下来的要点。摘要是以提供文献内容梗概为目的,不加评论和补充解释,简明、确切地记述文献重要内容的短文。其基本要素包括研究目的、方法、结果和结论。具体地讲就是研究工作的主要对象和范围,采用的...
请问abstract是什么意思?
abstract意思楼上的已经解释了,抽象类中可以没有抽象方法,抽象类也不能实例化。还有abstract方法所在的类必须用abstract修饰 评论| 2013-10-04 22:00热心网友 n.摘要, 概要, 抽象adj.抽象的, 深奥的, 理论的vt.摘要, 提炼, 抽象化满意请及时采纳为满意答案 !!! 评论| 2013-10-05 00:04还是没有红|四级 ...
鄣勤力博: 含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的.abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不...
望都县18214308556: abstract class和interface有什么区别? - ?
鄣勤力博: 区别如下:1. 相同点 两者都是抽象类,都不能实例化.interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法.2. 不同点 interface需要实现,要用implements,而abstract class需要继承,要用extends.一个类可以实现多个...
望都县18214308556: 请问大神谁知道abstract class和interface有什么区别? - ?
鄣勤力博: 1.abstract class 在Java中表示的是一种继承关系,一个类只能使用一次继承关系.但是,一个类却可以实现多个interface.2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的方法,而在interface中,只能够有静态的不能被修改...
望都县18214308556: java 中abstract class和interface有什么区别 - ?
鄣勤力博: abstract 修饰的CLASS是抽象类 抽象类(abstract class)可以有抽象方法,也可以有具体是方法,抽象类只能支持单继承 interface 接口 接口可以有抽象的方法,不存在具体的方法,接口可以多继承(多实现) 如下是我以前学习的一些笔记你可...
望都县18214308556: interface和abstract class的三个区别 - ?
鄣勤力博: 展开全部1.interface的所有函数都是abstract的;2.interface的数据成员默认都是public static final的;3.Interface可以被多继承,abstract class单继承
望都县18214308556: java中abstract怎么使用 - ?
鄣勤力博: abstract是一个定义抽象类的关键字,你可以abstract class AA{}这样去定义一个类,也可以abstract void method();去定义一个方法,可是定义这个方法所在的类也必须是抽象类,也就是前面的定义AA那样去定义那个类了,这里权限修饰符我就没加了,你看需求加
望都县18214308556: Java中abstract class和interface有什么区别? - ?
鄣勤力博: 在java中不允许一个类继承多个多个父类,但是要实现“一个类继承多个类的功能”就可以用接口,一个类实现多个多个接口从而间接实现多重继承. 从本质上讲,接口也是是一种抽象类.这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现. 多个无关的类可以实现同一个接口.一个类可以实现多个无关的接口.与继承关系类似,接口与实现类之间存在多态性.java提供的接口都在相应的包中,通过引入包可以使用java提供的接口.也可以自己定义接口,一个java源文件就是由类和接口做成的.
望都县18214308556: java中abstract class和interface有什么区别?请举个例子,再加以说明??
鄣勤力博: interface是一种极端的抽象类,所有方法全都是抽象的.所有属性都是常量 static final的. 而abstract是一种抽象类,所谓抽象类是指他又抽象方法就是抽象类,不用所有方法都抽象. public interface A{ void print(); void println(); } public abstract class B{ void print(); void println(){System.out.println("可以有非抽象方法"); } }
望都县18214308556: PHP5中interface 和 abstract class 的区别 - ?
鄣勤力博: 1. 相同点: (1) 两者都是抽象类,都不能实例化. (2) interface 实现类及 abstract class 的子类都必须要实现已经声明的抽象方法. 2. 不同点: (1) interface 需要实现,要用 implements ,而 abstract class 需要继承,要用 extends . (2) 一...
望都县18214308556: 什么是抽象类(abstract class)??
鄣勤力博: 1. 什么是抽象类抽象类仅提供一个类型的部分实现.抽象类可以有实例变量,以及一个或多个构造函数.抽象类可以同时有抽象方法和具体方法.一个抽象类不会有实例,这些构造函数不能被客户端调用来创建实例.一个抽象类的构造函数可以...