徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
下载
比浏览器更快的访问!
 

Is-a

指数 Is-a

在知识表示、面向对象程序设计與面向对象设计的領域裡,is-a(,包含架構)指的是類別的父子繼承關係,例如類別D是另一個類別B的子類別(類別B是類別D的父類別)。 換句話說,通常"D is a B"(B把D包含在內,或是D被包含在B內)指的是,概念體D物是概念體B物的特殊化,而概念體B物是概念體D物的一般化。舉例來說,水果是苹果、橘子、芒果與其他水果的一般化。 在面向对象程序设计裡,is-a類別關係是在繼承概念的背景之下所形成的。有一說法是,對於所有水果來說,苹果繼承()所有的屬性,就像是肉質多的水果包住種子般。 is-a與has-a兩者是不同的對比,是以整體-附屬階層關係所組成的。也可以是instance-of的對比:請參考型態與個例的區別。 在真實世界裡設計一個模型時(例如计算机程序),尤其是物件與它的下一層從屬物件,在has-a與is-a兩者的關係上容易產生概念上的錯誤。.

11 关系: 子类型知识表示继承 (计算机科学)面向对象程序设计面向对象设计计算机程序苹果Liskov代換原則杧果属水果

子类型

在编程语言理论中,子类型(动名词,subtyping)是一种类型多态的形式。这种形式下,子类型(名词,subtype)可以替换另一种相关的数据类型(超类型,supertype)。也就是说,针对超类型元素进行操作的子程序、函数等程序元素,也可以操作相应的子类型。如果 S 是 T 的子类型,这种子类型关系通常写作 S number 的语言。在第一种情况下,整数类型将是浮点数类型的子类型;在第二种情况下,这两个类型都是 number 的子类型而相互之间无子类型关系。 编程者可利用子类型来以比没有它更抽象的方式来写代码。考虑下面的例子: 如果整数和实数都是 number 的子类型,则二者任何类型都可以传递给这个函数。为此,子类型经常被认为是一种形式的多态性。上述例子也可以比较于 C++ 语言的模板。 在类型论中,子类型关系经常写为 <:,有着 A<:B 意味着 A 是 B 的子类型。在类型论中子类型可用如下事实来特征化,如果 A<:B,类型 A 的任何表达式也可被给予类型 B;立法这个特征化的形式类型规则叫做“包容”规则。.

新!!: Is-a和子类型 · 查看更多 »

知识表示

知識表示法(知識重呈/知識表現) 是認知科學和人工智能兩個領域共同存在的問題。在認知科學里,它關係到人類如何儲存和處理資料。在人工智能里,其主要目標為儲存知識,讓程式能夠處理,達到人類的智慧。目前這個領域仍然沒有一個完美的答案。.

新!!: Is-a和知识表示 · 查看更多 »

继承 (计算机科学)

继承(inheritance)是面向对象软件技术当中的一个概念。如果一个类別B「继承自」另一个类別A,就把这个B称为「A的子类」,而把A称为「B的父类別」也可以称「A是B的超类」。继承可以使得子类具有父类別的各种属性和方法,而不需要再次编写相同的代码。在令子类別继承父类別的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类別的原有属性和方法,使其获得与父类別不同的功能。另外,为子类追加新的属性和方法也是常见的做法。 一般靜態的物件導向程式語言,繼承屬於靜態的,意即在子類別的行為在編譯期就已經決定,無法在執行期擴充。 有些编程语言支持多重继承,即一个子类可以同时有多个父类別,比如C++编程语言;而在有些编程语言中,一个子类只能继承自一个父类別,比如Java编程语言,这时可以利用接口来实现与多重继承相似的效果。 現今物件導向程式設計技巧中,繼承並非以繼承類別的「行為」為主,而是繼承類別的「型態」,使得元件的型態一致。另外在設計模式中提到一個守則,「多用合成,少用繼承」,此守則也是用來處理繼承無法在執行期動態擴充行為的遺憾。.

新!!: Is-a和继承 (计算机科学) · 查看更多 »

面向对象程序设计

面向对象程序设计(Object-oriented programming,缩写:OOP)是種具有物件概念的程式編程典範,同时也是一种程序开发的抽象方针。它可能包含資料、、程式碼與方法。对象則指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,物件裡的程序可以訪問及經常修改物件相關連的資料。在物件導向程式編程裡,電腦程式會被設計成彼此相關的物件。 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。目前已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用。此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它能够让人们更简单地设计并维护程序,使得程序更加便于分析、设计、理解。反对者在某些领域对此予以否认。 当我们提到面向对象的时候,它不仅指一种程序设计方法。它更多意义上是一种程序开发方式。在这一方面,我们必须了解更多关于面向对象系统分析和面向对象设计(Object Oriented Design,简称OOD)方面的知识。許多流行的程式語言是物件導向的,它們的風格就是會透由物件來創出實例。 重要的物件導向程式語言包含Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift、C#、Perl、Ruby 與 PHP等。.

新!!: Is-a和面向对象程序设计 · 查看更多 »

面向对象设计

面向对象设计(Object-Oriented Design,OOD)方法是面向对象程序设计方法中一个环节。其主要作用是对分析模型进行整理,生成设计模型提供给OOP作为开发依据。OOD包括:架构设计、用例设计、子系统设计、类设计等。架构设计的侧重点在于系统的体系框架的合理性,保证系统架构在系统的各个非功能性需求中保持一种平衡;子系统设计一般是采用纵向切割,关注的是系统的功能划分;类设计是根据通过一组对象、序列图展示系统的逻辑实现。 面向对象设计是为了解决软件问题而设计一个交互对象系统的过程。是一种软件设计的方法。.

新!!: Is-a和面向对象设计 · 查看更多 »

计算机程序

计算机程序(Computer Program)是指一组指示计算机或其他具有訊息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体--结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语(編譯器)同時也會烹饪手法的人(体--结构)来做这道菜。 通常,以英文文本為基礎的计算机程序要经过編譯和連結而成为一种人们不易看清而计算机可解讀的一連串數字的格式,然后放入运行。未经编译就可运行的程序,通常称之为脚本程序(script)。.

新!!: Is-a和计算机程序 · 查看更多 »

苹果

苹果(学名:)是蔷薇科苹果亚科苹果属植物,其樹為落叶乔木。苹果的果实富含矿物质和维生素,是人们最常食用的水果之一。.

新!!: Is-a和苹果 · 查看更多 »

Liskov代換原則

#重定向 里氏替换原则.

新!!: Is-a和Liskov代換原則 · 查看更多 »

杧果属

杧果属(学名:Mangifera)常称芒果属,闽南语称之为檨仔(拼音:shē-zǎi;白話字:Sōaiⁿ-á);是漆树科植物。.

新!!: Is-a和杧果属 · 查看更多 »

橘子(学名:Citrus reticulata),或写作桔子,芸香科柑橘屬的一种水果,原產自中國。閩南語稱橘為柑仔,西南官话区的各方言中呼为“柑子”或“柑儿”,也有一些方言称之为“橘柑”。 橘子中的維生素A還能夠增強人體在黑暗環境中的視力和治療夜盲症。橘子不宜食用過量,吃太多會患有胡蘿蔔素血症,皮膚呈深黃色,如同黃疸一般。若因吃太多橘子造成手掌變黃,只要停吃一段時間,就能讓膚色漸漸恢復正常。明代張岱季叔張燁芳對橘子情有獨鍾,據載其「性好啖橘,橘熟,堆砌床案間,無非橘者,自刊不給,輒命數僮環立剥之」,吃到手腳都呈現黃色。.

新!!: Is-a和橘 · 查看更多 »

水果

水果是指可以生食的植物果實。生產水果的植物稱為果樹。 水果含较多的可溶性糖分,很多还含有挥发性芳香物质 香蕉虽然汁液不多,但其果肉富含可溶性糖分和以乙酸异戊酯(俗名香蕉水)为主的挥发性芳香物质,通常生食。 番茄虽然富含汁液,而且含有可溶性糖分,但在传统上不常生食,因此有人认为它不是水果;但番茄的小果型品种車厘茄专供生食。 大多數水果的核仁是不能吃的,例如杏、桃子、李子、枇杷的核仁中就含有毒素。蘋果、櫻桃、梅、李、梨薔薇科植物的種仁、花芽或樹皮等也含有毒性。一些热带水果容易引起过敏,例如芒果、菠萝、荔枝,其他还有香蕉、草莓、杨桃、猕猴桃、西红柿等。杨桃對於慢性肾病患者有中毒的病例。.

新!!: Is-a和水果 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »