Subtyping (original) (raw)

About DBpedia

サブタイピング(英: subtyping)や部分型とは、型のポリモーフィズムの形態であり、上位と定義された型を、その下位と定義された型で、型安全性に則って代替できるというの概念および実装を意味している。 スーパータイプは、そのサブタイプの数々によって代替/代入可能とされており、これは代入可能性(substitutability)と呼ばれる。そのスーパータイプとサブタイプの関係は、is-aとも言われる。記号<:を用いてsubtype <: supertypeと表記される。 スーパータイプ+サブタイプの概念はその時の用法で、上位型(supertype)+下位型(subtype)、基底型(base type)+派生型(derived type)、基本型(basic type)+拡張型(extend type)、上位型(supertype)+部分型(subtype) などの別称に使い分けられており、それぞれの性質にも差異がある。

thumbnail

Property Value
dbo:abstract Στην θεωρία γλωσσών προγραμματισμού, πολυμορφισμός υποτύπων είναι μια μορφή πολυμορφισμού τύπων στην οποία ένας υποτύπος είναι ένας τύπος δεδομένων που σχετίζεται σε έναν άλλο τύπο δεδομένων (τον υπερτύπο) με ενός είδους , πράγμα που σημαίνει ότι οι δομές του προγράμματος, συνήθως υπορουτίνες ή συναρτήσεις που γράφτηκαν για να λειτουργούν πάνω σε στοιχεία του υπερτύπου μπορούν επίσης να λειτουργήσουν με τα στοιχεία του υποτύπου. Αν S είναι ένας υποτύπος του Τ, η υποτύπου γράφεται συχνά S <: Τ, που σημαίνει ότι οποιοσδήποτε όρος του τύπου S μπορεί "να χρησιμοποιηθεί με ασφάλεια σε ένα πλαίσιο όπου" αναμένεται ένας όρος του τύπου Τ. Οι ακριβής σημασιολογία του πολυμορφισμού υποτύπων εξαρτάται σε μεγάλο βαθμό από το τι ακριβώς σημαίνει "μπορεί να χρησιμοποιηθεί με ασφάλεια σε ένα πλαίσιο όπου" σε μία δεδομένη γλώσσα προγραμματισμού. Το σύστημα τύπων μιας γλώσσας προγραμματισμού καθορίζει ουσιαστικά τη δική του σχέση υποκατηγοριών, η οποία μπορεί κάλλιστα να είναι τετριμμένη. Επειδή η σχέση υποτύπου επιτρέπει ένας όρος να έχει (ανήκει σε) περισσότερους από έναν τύπο, οι υποτύποι είναι μια μορφή του , για αυτό ονομάζεται (ορθότερα) πολυμορφισμός υποτύπων. Στον αντικειμενοστρεφή προγραμματισμό, η σχέση υποτύπου ονομάζεται συχνά απλά "πολυμορφισμός" (βλ. ). Η σχέση υποτύπου δεν ονομάζεται σχεδόν ποτέ έτσι στην θεωρία τύπων ή στον συναρτησιακό προγραμματισμό, όπου απλώς ο όρος "πολυμορφισμός" αναφέρεται συνήθως σε παραμετρικό πολυμορφισμό, όπως στον . (Μηχανισμοί με παρόμοιο στόχο, αλλά μη ταυτόσημοι με τον παραμετρικό πολυμορφισμό, είναι γνωστοί με άλλα ονόματα στον αντικειμενοστρεφή προγραμματισμό, π.χ. ή .) Οι συχνά επιτρέπουν τη λειτουργία υποτύπων σε εγγραφές. Κατά συνέπεια, ο λ-λογισμός με απλό σύστημα τύπων επεκτεταμένος με τύπους εγγραφών είναι ίσως το πιο απλό θεωρητικό πλαίσιο στο οποίο μπορεί να οριστεί και να μελετηθεί κάποια χρήσιμη έννοια υποτύπου. Επειδή ο προκύπτων λογισμός επιτρέπει όρους που έχουν περισσότερους από έναν τύπο, δεν είναι πλέον μία "απλή" θεωρία τύπων. Δεδομένου ότι οι συναρτησιακές γλώσσες προγραμματισμού εξ' ορισμού υποστηρίζουν , που μπορούν επίσης να αποθηκεύονται σε εγγραφές, οι εγγραφές εφοδιασμένες με τη λειτουργία υποτύπου παρέχουν ορισμένα από τα χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού (εκτός αν προστεθούν στη γλώσσα αναφορές, αυτά τα "αντικείμενα" είναι ). Συνήθως, οι συναρτησιακές γλώσσες προγραμματισμού παρέχουν επίσης κάποια, συνήθως περιορισμένη, μορφή παραμετρικού πολυμορφισμού. Σε ένα θεωρητικό πλαίσιο, είναι σκόπιμο να μελετήσει κανείς την αλληλεπίδραση των δύο χαρακτηριστικών. Ένα κοινό θεωρητικό πλαίσιο είναι το . Διάφοροι λογισμοί που επιχειρούν να συλλάβουν τις θεωρητικές ιδιότητες του αντικειμενοστρεφούς προγραμματισμού μπορεί να προκύψουν από το σύστημα F<:. Η έννοια των υποτύπων σχετίζεται με τις γλωσσικές έννοιες της και . Συνδέεται επίσης με την έννοια της στη μαθηματική λογική. Οι υποτύποι δεν πρέπει να συγχέονται με την έννοια της (κλάσεων ή αντικειμένων) των αντικειμενοστρεφών γλώσσών. Η σχέση υποτύπου είναι μια σχέση μεταξύ τύπων (διαπροσωπειών σε αντικειμενοστρεφές ιδίωμα), ενώ η κληρονομικότητα είναι μία σχέση μεταξύ υλοποιήσεων, που προκύπτει από μια κάποιο χαρακτηριστικό της γλώσσας το οποίο επιτρέπει σε νέα αντικείμενα να δημιουργηθούν από υπάρχοντα. Σε ορισμένες αντικειμενοστρεφείς γλώσσες, η σχέση υποτύπων καλείται κληρονομικότητα διαπροσωπειών. (el) In programming language theory, subtyping (also subtype polymorphism or inclusion polymorphism) is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability, meaning that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype. If S is a subtype of T, the subtyping relation (written as S <: T, S ⊑ T, or S ≤: T ) means that any term of type S can safely be used in any context where a term of type T is expected. The precise semantics of subtyping here crucially depends on the particulars of how "safely be used" and "any context" are defined by a given type formalism or programming language. The type system of a programming language essentially defines its own subtyping relation, which may well be trivial, should the language support no (or very little) conversion mechanisms. Due to the subtyping relation, a term may belong to more than one type. Subtyping is therefore a form of type polymorphism. In object-oriented programming the term 'polymorphism' is commonly used to refer solely to this subtype polymorphism, while the techniques of parametric polymorphism would be considered generic programming. Functional programming languages often allow the subtyping of records. Consequently, simply typed lambda calculus extended with record types is perhaps the simplest theoretical setting in which a useful notion of subtyping may be defined and studied. Because the resulting calculus allows terms to have more than one type, it is no longer a "simple" type theory. Since functional programming languages, by definition, support function literals, which can also be stored in records, records types with subtyping provide some of the features of object-oriented programming. Typically, functional programming languages also provide some, usually restricted, form of parametric polymorphism. In a theoretical setting, it is desirable to study the interaction of the two features; a common theoretical setting is system F<:. Various calculi that attempt to capture the theoretical properties of object-oriented programming may be derived from system F<:. The concept of subtyping is related to the linguistic notions of hyponymy and holonymy. It is also related to the concept of bounded quantification in mathematical logic (see Order-sorted logic). Subtyping should not be confused with the notion of (class or object) inheritance from object-oriented languages; subtyping is a relation between types (interfaces in object-oriented parlance) whereas inheritance is a relation between implementations stemming from a language feature that allows new objects to be created from existing ones. In a number of object-oriented languages, subtyping is called interface inheritance, with inheritance referred to as implementation inheritance. (en) サブタイピング(英: subtyping)や部分型とは、型のポリモーフィズムの形態であり、上位と定義された型を、その下位と定義された型で、型安全性に則って代替できるというの概念および実装を意味している。 スーパータイプは、そのサブタイプの数々によって代替/代入可能とされており、これは代入可能性(substitutability)と呼ばれる。そのスーパータイプとサブタイプの関係は、is-aとも言われる。記号<:を用いてsubtype <: supertypeと表記される。 スーパータイプ+サブタイプの概念はその時の用法で、上位型(supertype)+下位型(subtype)、基底型(base type)+派生型(derived type)、基本型(basic type)+拡張型(extend type)、上位型(supertype)+部分型(subtype) などの別称に使い分けられており、それぞれの性質にも差異がある。 (ja) In informatica, e in particolare in programmazione, si definisce sottotipo un tipo di dato legato ad un altro tipo di dato, detto super-tipo, da una relazione di sostituibilità, intesa nel senso che un programma scritto per utilizzare elementi costruiti sul modello del supertipo, può funzionare anche con elementi costruiti sul modello del sottotipo. In generale, si assume che la relazione supertipo-sottotipo sia quella definita dal principio di sostituzione di Liskov. Ad esempio, un certo linguaggio potrebbe ammettere l'uso di valori interi al posto di valori floating point, oppure potrebbe definire un tipo numero in luogo del quale possono essere sia interi sia numeri con virgola. Nel primo caso il tipo intero sarebbe un sottotipo di floating point; nel secondo questi due tipi non avrebbero alcuna mutua relazione reciproca, ma entrambi sarebbero sottotipi di numero. (it) Podtyp – konstrukcja programistyczna umożliwiająca w określonym języku programowania definiowanie ograniczeń na pewnym typie bazowym. Pojęcie podtypu zdefiniowane zostało wprost w języku Ada, w którym istnieje jednoznaczne odróżnienie deklaracji typu i podtypu, identyfikowane odpowiednim słowem kluczowym: * subtype – dla podtypów w odróżnieniu od * type – dla typów, w tym także typów pochodnych. Podtyp jest więc nałożeniem pewnego ograniczenia na pewien typ (w nomenklaturze języka Ada nazywany typem bazowym). W przypadku podtypów ograniczenia te dotyczą wyłącznie zakresu możliwych wartości należących do podtypu, stanowiących pewien podzbiór wyodrębniony ze zbioru możliwych wartości typu bazowego. Jest to więc różna konstrukcja w porównaniu z typem pochodnym, definiującym jednak nowy typ, mimo że również oparty na pewnym typie macierzystym. Przykład w Adzie: subtype miesiąc is INTEGER range 1..12; Na tak zdefiniowanym podtypie można wykonywać wszystkie te same operacje, które są dopuszczalne dla typu INTEGER, a ograniczony jest jedynie zakres wartości. Istnieją języki, w których występują konstrukcje analogiczne do podtypu, mimo że język nie definiuje wprost takiego pojęcia. Przykładem jest język Pascal, w którym występuje typ okrojony. Jego cechy są jednak takie, iż jest to podtyp pewnego typu bazowego. Typ bazowy w Pascalu musi być typem porządkowym. type miesiąc=1..12; Nie definiuje się tu wprost typu bazowego, wynika on z typu literałów użytych do ograniczenia zakresu wartości. Na wartościach takiego typu tak jak w podtypie dopuszczalne są wszystkie operacje typu bazowego. Nowy typ (podtyp) jest zgodny w sensie przypisania z typem bazowym. W języku Modula 2 typ bazowy, w definicji podtypu, może być wyspecyfikowany jawnie lub pominięty: * TYPE miesiąc=1..12 * TYPE miesiąc:INTEGER=1..12 (pl) Polymorfism innebär inom programmering att en symbol, till exempel en variabel, inte har en fix datatyp utan att datatypen kan ändras under programmets gång. Variabeln kan till exempel börja med att vara en enkel variabeltyp, till exempel ett heltal (integer), och sedan bli en sammansatt variabeltyp (till exempel en array, eller ett objekt, eller en array av objekt), eller en funktion. Objektorienterade språk med statiska datatyper, till exempel C++ och Java, har bara möjlighet till begränsad polymorfism genom underklasser. Procedurorienterade språk med statiska datatyper som C och Pascal saknar polymorfism. Genuint polymorfa språk som Javascript har däremot polymorfismen inbyggd i språket så där definierar man ingen datatyp då man deklarerar en variabel utan datatypen avgörs av vilket värde variabeln senare tilldelas i programmet. I till exempel Javascript skriver man bara "var" då man deklarerar en variabel. Exempel i Javascript: var a; // a är en variabel, datatypen ännu odefinierad........a = 23; // a är ett tal (Javascript skiljer inte på heltal och flyttal)........a = "Text"; // a är en textsträng........a = [ 23, 45, 67 ]; // a är en array av tre tal........a = AnythingElse; // a har nu samma datatyp som "AnythingElse"........a = [ "Text1", 23, AnythingElse ]; // a är en array som innehåller blandade datatyper........ Script-språk som Javascript, Perl, PHP, Python brukar ha polymorfa variabler. Fördelen är större flexibilitet, nackdelen är att man inte har tillgång till strikt typkontroll som hjälpmedel vid avlusning. (sv) 在编程语言理论中,子类型(动名词,英語:subtyping)是一种类型多态的形式。这种形式下,子类型(名词,英語:subtype)可以替换另一种相关的数据类型(超类型,英語:supertype)。也就是说,针对超类型元素进行操作的子程序、函数等程序元素,也可以操作相应的子类型。如果 S 是 T 的子类型,这种子类型关系通常写作 S <: T,意思是在任何需要使用 T 类型对象的环境中,都可以安全地使用 S 类型的对象。子类型的准确语义取决于具体的编程语言中「X 环境中,可以安全地使用 Y」的意义。编程语言的类型系统定义了各自不同的子类型关系。 由于子类型关系的存在,某个对象可能同时属于多种类型,因此,子类型(英語:subtyping)是一种类型多态的形式,也被称作子类型多态(英語:subtype polymorphism)或者包含多态(英語:inclusion polymorphism)。在面向对象程序设计中,多态一般仅指这里所说的「子类型多态」,而「参数多态」则一般被称作泛型编程。 子类型与面向对象语言中(类或对象)的继承是两个概念。子类型反映了类型(即面向对象中的接口)之间的关系;而继承反映了一类对象可以从另一类对象创造出来,是语言特性的实现。因此,子类型也称接口继承;继承称作实现继承。 (zh)
dbo:thumbnail wiki-commons:Special:FilePath/Inheritance.svg?width=300
dbo:wikiPageID 213508 (xsd:integer)
dbo:wikiPageLength 25073 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1118856289 (xsd:integer)
dbo:wikiPageWikiLink dbr:Behavioral_subtyping dbr:Preorder dbr:Scala_(programming_language) dbr:Binary_relation dbr:Design_by_Contract dbr:Holonymy dbr:Hyponymy dbr:Invariant_(computer_science) dbr:Generic_programming dbr:Nominal_type_system dbr:Object-oriented_programming dbr:Bounded_quantification dbr:Application_programming_interface dbr:Luca_Cardelli dbr:Simply_typed_lambda_calculus dbr:Simula dbr:Datatype dbr:Keynote dbr:Parametric_polymorphism dbr:Polymorphism_(computer_science) dbr:Programming_language_theory dbr:Barbara_Liskov dbc:Polymorphism_(computer_science) dbr:Type_coercion dbr:Type_conversion dbr:Type_system dbr:Type_theory dbr:Duck_typing dbr:Circle-ellipse_problem dbr:File:Inheritance.svg dbr:Liskov_substitution_principle dbr:System_F-sub dbr:Algebraic_data_type dbc:Data_types dbr:Formal_language dbr:Unified_Modeling_Language dbr:Record_(computer_science) dbr:Java_(programming_language) dbr:Jeannette_Wing dbr:Covariance_and_contravariance_(computer_science) dbc:Object-oriented_programming dbc:Type_theory dbr:John_C._Reynolds dbr:Top_type dbr:Trait_(computer_programming) dbr:Identity_relation dbr:Refinement_type dbr:Disjoint_union dbr:Martín_Abadi dbr:Class-based_programming dbr:Typing_rule dbr:Identity_function dbr:Inheritance_(computer_science) dbr:Method_(computer_science) dbr:Category_theory dbr:Undecidable_problem dbr:User-defined_type dbr:Immutable_object dbr:Programming_language dbr:Structural_type_system dbr:Set-builder_notation dbr:Order-sorted_logic dbr:Function_literals dbr:Functional_programming_languages dbr:Implicit_conversion dbr:Supertype dbr:Abstraction_principle_(programming) dbr:Bounded_polymorphism dbr:Subroutines dbr:Substitutability dbr:Subtyping_of_functions dbr:Type_checker
dbp:wikiPageUsesTemplate dbt:Citation_needed dbt:Cite_conference dbt:ISBN dbt:Math dbt:Mvar dbt:Original_research dbt:Refbegin dbt:Refend dbt:Reflist dbt:Section_link dbt:Sfn dbt:Short_description dbt:Wikibooks dbt:Data_types dbt:Polymorphism
dct:subject dbc:Polymorphism_(computer_science) dbc:Data_types dbc:Object-oriented_programming dbc:Type_theory
gold:hypernym dbr:Form
rdf:type yago:Abstraction100002137 yago:Cognition100023271 yago:Concept105835747 yago:Content105809192 yago:GrammaticalRelation113796779 yago:Idea105833840 yago:Inflection113803782 yago:LinguisticRelation113797142 yago:Paradigm113804375 yago:PsychologicalFeature100023100 yago:Relation100031921 yago:WikicatProgrammingConstructs yago:WikicatProgrammingParadigms
rdfs:comment サブタイピング(英: subtyping)や部分型とは、型のポリモーフィズムの形態であり、上位と定義された型を、その下位と定義された型で、型安全性に則って代替できるというの概念および実装を意味している。 スーパータイプは、そのサブタイプの数々によって代替/代入可能とされており、これは代入可能性(substitutability)と呼ばれる。そのスーパータイプとサブタイプの関係は、is-aとも言われる。記号<:を用いてsubtype <: supertypeと表記される。 スーパータイプ+サブタイプの概念はその時の用法で、上位型(supertype)+下位型(subtype)、基底型(base type)+派生型(derived type)、基本型(basic type)+拡張型(extend type)、上位型(supertype)+部分型(subtype) などの別称に使い分けられており、それぞれの性質にも差異がある。 (ja) 在编程语言理论中,子类型(动名词,英語:subtyping)是一种类型多态的形式。这种形式下,子类型(名词,英語:subtype)可以替换另一种相关的数据类型(超类型,英語:supertype)。也就是说,针对超类型元素进行操作的子程序、函数等程序元素,也可以操作相应的子类型。如果 S 是 T 的子类型,这种子类型关系通常写作 S <: T,意思是在任何需要使用 T 类型对象的环境中,都可以安全地使用 S 类型的对象。子类型的准确语义取决于具体的编程语言中「X 环境中,可以安全地使用 Y」的意义。编程语言的类型系统定义了各自不同的子类型关系。 由于子类型关系的存在,某个对象可能同时属于多种类型,因此,子类型(英語:subtyping)是一种类型多态的形式,也被称作子类型多态(英語:subtype polymorphism)或者包含多态(英語:inclusion polymorphism)。在面向对象程序设计中,多态一般仅指这里所说的「子类型多态」,而「参数多态」则一般被称作泛型编程。 子类型与面向对象语言中(类或对象)的继承是两个概念。子类型反映了类型(即面向对象中的接口)之间的关系;而继承反映了一类对象可以从另一类对象创造出来,是语言特性的实现。因此,子类型也称接口继承;继承称作实现继承。 (zh) Στην θεωρία γλωσσών προγραμματισμού, πολυμορφισμός υποτύπων είναι μια μορφή πολυμορφισμού τύπων στην οποία ένας υποτύπος είναι ένας τύπος δεδομένων που σχετίζεται σε έναν άλλο τύπο δεδομένων (τον υπερτύπο) με ενός είδους , πράγμα που σημαίνει ότι οι δομές του προγράμματος, συνήθως υπορουτίνες ή συναρτήσεις που γράφτηκαν για να λειτουργούν πάνω σε στοιχεία του υπερτύπου μπορούν επίσης να λειτουργήσουν με τα στοιχεία του υποτύπου. Αν S είναι ένας υποτύπος του Τ, η υποτύπου γράφεται συχνά S <: Τ, που σημαίνει ότι οποιοσδήποτε όρος του τύπου S μπορεί "να χρησιμοποιηθεί με ασφάλεια σε ένα πλαίσιο όπου" αναμένεται ένας όρος του τύπου Τ. Οι ακριβής σημασιολογία του πολυμορφισμού υποτύπων εξαρτάται σε μεγάλο βαθμό από το τι ακριβώς σημαίνει "μπορεί να χρησιμοποιηθεί με ασφάλεια σε ένα πλαίσιο όπο (el) In programming language theory, subtyping (also subtype polymorphism or inclusion polymorphism) is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability, meaning that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype. If S is a subtype of T, the subtyping relation (written as S <: T, S ⊑ T, or S ≤: T ) means that any term of type S can safely be used in any context where a term of type T is expected. The precise semantics of subtyping here crucially depends on the particulars of how "safely be used" and "any context" are defined by a given type formalism or programming language. The type system of a p (en) In informatica, e in particolare in programmazione, si definisce sottotipo un tipo di dato legato ad un altro tipo di dato, detto super-tipo, da una relazione di sostituibilità, intesa nel senso che un programma scritto per utilizzare elementi costruiti sul modello del supertipo, può funzionare anche con elementi costruiti sul modello del sottotipo. In generale, si assume che la relazione supertipo-sottotipo sia quella definita dal principio di sostituzione di Liskov. (it) Podtyp – konstrukcja programistyczna umożliwiająca w określonym języku programowania definiowanie ograniczeń na pewnym typie bazowym. Pojęcie podtypu zdefiniowane zostało wprost w języku Ada, w którym istnieje jednoznaczne odróżnienie deklaracji typu i podtypu, identyfikowane odpowiednim słowem kluczowym: * subtype – dla podtypów w odróżnieniu od * type – dla typów, w tym także typów pochodnych. Przykład w Adzie: subtype miesiąc is INTEGER range 1..12; type miesiąc=1..12; * TYPE miesiąc=1..12 * TYPE miesiąc:INTEGER=1..12 (pl) Polymorfism innebär inom programmering att en symbol, till exempel en variabel, inte har en fix datatyp utan att datatypen kan ändras under programmets gång. Variabeln kan till exempel börja med att vara en enkel variabeltyp, till exempel ett heltal (integer), och sedan bli en sammansatt variabeltyp (till exempel en array, eller ett objekt, eller en array av objekt), eller en funktion. Script-språk som Javascript, Perl, PHP, Python brukar ha polymorfa variabler. Fördelen är större flexibilitet, nackdelen är att man inte har tillgång till strikt typkontroll som hjälpmedel vid avlusning. (sv)
rdfs:label Πολυμορφισμός υποτύπων (el) Sottotipo (informatica) (it) サブタイピング (計算機科学) (ja) Podtyp (programowanie) (pl) Subtyping (en) Polymorfism (programmering) (sv) 子类型 (zh)
owl:sameAs freebase:Subtyping yago-res:Subtyping wikidata:Subtyping http://bn.dbpedia.org/resource/উপটাইপ_(কম্পিউটার_বিজ্ঞান) dbpedia-el:Subtyping dbpedia-fa:Subtyping dbpedia-it:Subtyping dbpedia-ja:Subtyping dbpedia-pl:Subtyping dbpedia-sv:Subtyping dbpedia-zh:Subtyping https://global.dbpedia.org/id/2XvXX
prov:wasDerivedFrom wikipedia-en:Subtyping?oldid=1118856289&ns=0
foaf:depiction wiki-commons:Special:FilePath/Inheritance.svg
foaf:isPrimaryTopicOf wikipedia-en:Subtyping
is dbo:wikiPageRedirects of dbr:Interface_inheritance dbr:Inclusion_polymorphism dbr:Supertype dbr:Subtype_(computing) dbr:Subtype_and_derived_type dbr:Subtype_polymorphism dbr:Subtypes dbr:Subtyping_(object-oriented_programming) dbr:Subtyping_of_functions dbr:Subtyping_polymorphism
is dbo:wikiPageWikiLink of dbr:Preorder dbr:Method_overriding dbr:Typed_lambda_calculus dbr:Alloy_(specification_language) dbr:Julia_(programming_language) dbr:Cut,_copy,_and_paste dbr:Index_of_object-oriented_programming_articles dbr:Interface_inheritance dbr:Numerical_tower dbr:Generic_programming dbr:Object-oriented_design dbr:Object-oriented_programming dbr:Gellish dbr:Bottom_type dbr:Bounded_quantification dbr:Bounded_quantifier dbr:Monad_(functional_programming) dbr:Conceptual_schema dbr:Constructive_set_theory dbr:Simula dbr:Common_Algebraic_Specification_Language dbr:Composite_data_type dbr:Functional_predicate dbr:Derived_type dbr:Parametric_polymorphism dbr:Polymorphism dbr:Polymorphism_(computer_science) dbr:Subsumption dbr:Subtype dbr:Barbara_Liskov dbr:Adapter_pattern dbr:Type_conversion dbr:Type_system dbr:Type_theory dbr:Has-a dbr:Lambda_cube dbr:Liskov_substitution_principle dbr:Ada_(programming_language) dbr:Agile_Automation dbr:POPLmark_challenge dbr:Gradual_typing dbr:Object_composition dbr:Hierarchy dbr:Is-a dbr:Covariance_and_contravariance_(computer_science) dbr:Abstract_factory_pattern dbr:Abstract_type dbr:Lambda_calculus dbr:Higher_order_grammar dbr:Top_type dbr:System_F dbr:Class-based_programming dbr:Class_diagram dbr:Inheritance_(object-oriented_programming) dbr:Oberon-2 dbr:Change_management_(engineering) dbr:Name_binding dbr:Type_safety dbr:Object_slicing dbr:Variable_(computer_science) dbr:Factory_method_pattern dbr:Object-based_language dbr:Structural_type_system dbr:Troponymy dbr:Universal_type dbr:Nominative_and_structural_type_systems dbr:Inclusion_polymorphism dbr:Supertype dbr:Subtype_(computing) dbr:Subtype_and_derived_type dbr:Subtype_polymorphism dbr:Subtypes dbr:Subtyping_(object-oriented_programming) dbr:Subtyping_of_functions dbr:Subtyping_polymorphism
is rdfs:seeAlso of dbr:C++
is foaf:primaryTopic of wikipedia-en:Subtyping