Inheritance (object-oriented programming) (original) (raw)
في البرمجة كائنية التوجه، الوراثة (بالإنجليزية: Inheritance) خاصية أساسية في اللغات البرمجية كائنية التوجه، تتمثل في إمكانية بناء صنف (class) على أساس صنف آخر تم بناؤه سابقا (يسمى الصنف العلوي، الأب، أو الأساس) أو أكثر، بحيث «يرث» الصنف الجديد (المشتق، الفرعي) كل خصائص وسلوكيات الصنف (الأصناف) الأم، وبحيث لا يبقى على المبرمج سوى تعريف الخصائص والسلوكيات الإضافية الخاصة بالصنف الفرعي دون تلك المشتركة مع الصنف (الأصناف) الأساس. الوراثة بالإمكانات التي توفرها، آلية لتنظيم العمل وتسهيله عبر إتاحة قابلية إعادة استخدام الشيفرة البرمجية.
Property | Value |
---|---|
dbo:abstract | في البرمجة كائنية التوجه، الوراثة (بالإنجليزية: Inheritance) خاصية أساسية في اللغات البرمجية كائنية التوجه، تتمثل في إمكانية بناء صنف (class) على أساس صنف آخر تم بناؤه سابقا (يسمى الصنف العلوي، الأب، أو الأساس) أو أكثر، بحيث «يرث» الصنف الجديد (المشتق، الفرعي) كل خصائص وسلوكيات الصنف (الأصناف) الأم، وبحيث لا يبقى على المبرمج سوى تعريف الخصائص والسلوكيات الإضافية الخاصة بالصنف الفرعي دون تلك المشتركة مع الصنف (الأصناف) الأساس. الوراثة بالإمكانات التي توفرها، آلية لتنظيم العمل وتسهيله عبر إتاحة قابلية إعادة استخدام الشيفرة البرمجية. (ar) Dědičnost je v objektově orientovaném programování způsob, jak ustanovit vztah mezi objekty. V třídové dědičnosti, kde jsou objekty definované třídami, mohou třídy zdědit atributy a chování od předem existujících tříd, které se nazývají , základní třídy nebo super třídy. Výsledné třídy jsou nazývány odvozené třídy, podtřídy nebo potomek třídy. Koncept dědičnosti byl poprvé zaveden pro jazyk Simula v roce 1968. (cs) L'herència és un dels conceptes fonamentals de la programació orientació a objectes i té gran importància en el desenvolupament de software. S'utilitza l'herència per crear classes noves a partir de les ja definides. Una classe nova pot ser una extensió o bé una restricció de la classe original. A més d'aquest aspecte estructural, serveix també per documentar les semblances entre les classes, que és particularment important durant les primeres etapes del disseny de software, la nova classe està unida amb la classe original amb una relació "es-un" (engl. Is-A). La classe que hereta es diu classe base (també super-classe o classe pare), la classe heretada s'anomena classe derivada (també sub-classe o classe fill), aquesta pren o hereta els atributs (variables) i comportament (mètodes) de la classe base (reutilitza codi). Aquest procés es denomina especialització, en sentit contrari en diríem generalització, termes limitats principalment a nivell de models. En llenguatge una relació d'herència es representa amb una fletxa triangular, apuntant a la classe base des de la classe derivada, els mètodes i atributs heretats no es repeteixen en la representació de la sub-classe. El 1967 el llenguatge de programació Simula introduïa per primera vegada el concepte d'herència juntament amb altres conceptes de la programació orientada a objectes, com ara el polimorfisme. Les classes permeten especificar els tipus de les dades i les funcions que seran heretades. Alguns llenguatges de programació separen aquests aspectes encara que sigui parcialment, i distingeixen entre classe i interfície (engl. Interface). (ca) En programación orientada a objetos, la herencia es, después de la agregación o composición, el mecanismo más utilizado para alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son la reutilización y la extensibilidad. A través de ella, los diseñadores pueden crear nuevas clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (métodos) y finalmente los atributos (variables) de su superclase. Es la relación entre una clase general y otra clase más específica.Por ejemplo: Si declaramos una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase texto, son automáticamente heredados por la subclase párrafo. La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programación). En los lenguajes que cuentan con un sistema de tipos fuerte y estrictamente restrictivo con el tipo de datos de las variables, la herencia suele ser un requisito fundamental para poder emplear el Polimorfismo, al igual que un mecanismo que permita decidir en tiempo de ejecución qué método debe invocarse en respuesta a la recepción de un mensaje, conocido como enlace tardío o enlace dinámico. (es) Die Vererbung (englisch inheritance) ist eines der grundlegenden Konzepte der Objektorientierung und hat große Bedeutung in der Softwareentwicklung. Die Vererbung dient dazu, aufbauend auf existierenden Klassen neue zu schaffen, wobei die Beziehung zwischen ursprünglicher und neuer Klasse dauerhaft ist. Eine neue Klasse kann dabei eine Erweiterung oder eine Einschränkung der ursprünglichen Klasse sein. Neben diesem konstruktiven Aspekt dient Vererbung auch der Dokumentation von Ähnlichkeiten zwischen Klassen, was insbesondere in den frühen Phasen des Softwareentwurfs von Bedeutung ist. Auf der Vererbung basierende Klassenhierarchien spiegeln strukturelle und verhaltensbezogene Ähnlichkeiten der Klassen wider. Die vererbende Klasse wird meist Basisklasse (auch Super-, Ober- oder Elternklasse) genannt, die erbende abgeleitete Klasse (auch Sub-, Unter- oder Kindklasse). Den Vorgang des Erbens nennt man meist Ableitung oder Spezialisierung, die Umkehrung hiervon Generalisierung, was ein vorwiegend auf die Modellebene beschränkter Begriff ist. In der Unified Modeling Language (UML) wird eine Vererbungsbeziehung durch einen Pfeil mit einer dreieckigen Spitze dargestellt, der von der abgeleiteten Klasse zur Basisklasse zeigt. Geerbte Attribute und Methoden werden in der Darstellung der abgeleiteten Klasse nicht wiederholt. In der Programmiersprache Simula wurde 1967 die Vererbung mit weiteren Konzepten objektorientierter Programmierung erstmals eingeführt. Letztere hat seitdem in der Softwareentwicklung wichtige neue Perspektiven eröffnet und auch die komponentenbasierte Entwicklung ermöglicht. Abgeleitete Klasse und Basisklasse stehen typischerweise in einer „ist-ein“-Beziehung zueinander.Klassen dienen der Spezifikation von Datentyp und Funktionalität, die beide vererbt werden können.Einige Programmiersprachen trennen zumindest teilweise zwischen diesen Aspekten und unterscheiden zwischen Schnittstelle (englisch Interface) und Klasse.Wenn eine abgeleitete Klasse von mehr als einer Basisklasse erbt, wird dies Mehrfachvererbung genannt. Mehrfaches Erben ist nicht bei allen Programmiersprachen möglich, bei manchen nur in eingeschränkter Form. (de) In object-oriented programming, inheritance is the mechanism of basing an object or class upon another object (prototype-based inheritance) or class (class-based inheritance), retaining similar implementation. Also defined as deriving new classes from existing ones such as super class or base class and then forming them into a hierarchy of classes. In most class-based object-oriented languages, an object created through inheritance, a "child object", acquires all the properties and behaviors of the "parent object" , with the exception of: constructors, destructor, overloaded operators and friend functions of the base class. Inheritance allows programmers to create classes that are built upon existing classes, to specify a new implementation while maintaining the same behaviors (realizing an interface), to reuse code and to independently extend original software via public classes and interfaces. The relationships of objects or classes through inheritance give rise to a directed acyclic graph. Inheritance was invented in 1969 for Simula and is now used throughout many object-oriented programming languages such as Java, C++, PHP and Python. An inherited class is called a subclass of its parent class or super class. The term "inheritance" is loosely used for both class-based and prototype-based programming, but in narrow use the term is reserved for class-based programming (one class inherits from another), with the corresponding technique in prototype-based programming being instead called delegation (one object delegates to another). Class-modifying inheritance patterns can be pre-defined according to simple network interface parameters such that inter-language compatibility is preserved. Inheritance should not be confused with subtyping. In some languages inheritance and subtyping agree, whereas in others they differ; in general, subtyping establishes an is-a relationship, whereas inheritance only reuses implementation and establishes a syntactic relationship, not necessarily a semantic relationship (inheritance does not ensure behavioral subtyping). To distinguish these concepts, subtyping is sometimes referred to as interface inheritance (without acknowledging that the specialization of type variables also induces a subtyping relation), whereas inheritance as defined here is known as implementation inheritance or code inheritance. Still, inheritance is a commonly used mechanism for establishing subtype relationships. Inheritance is contrasted with object composition, where one object contains another object (or objects of one class contain objects of another class); see composition over inheritance. Composition implements a has-a relationship, in contrast to the is-a relationship of subtyping. (en) In informatica l'ereditarietà è uno dei concetti fondamentali nel paradigma di programmazione a oggetti. Essa consiste in una relazione che il linguaggio di programmazione, o il programmatore stesso, stabilisce tra due classi. Se la classe B eredita dalla classe A, si dice che B è una sottoclasse di A e che A è una superclasse di B. Denominazioni alternative equivalenti, sono classe padre, classe madre o classe base per A e classe figlia o classe derivata per B. A seconda del linguaggio di programmazione, l'ereditarietà può essere ereditarietà singola o semplice (ogni classe può avere al più una superclasse diretta) o multipla (ogni classe può avere più superclassi dirette). In generale, l'uso dell'ereditarietà dà luogo a una gerarchia di classi; nei linguaggi con ereditarietà singola, si ha un albero se esiste una superclasse "radice" di cui tutte le altre classi sono direttamente o indirettamente sottoclassi (come la classe Object nel caso di Java) o a una foresta altrimenti; l'ereditarietà multipla definisce invece una gerarchia a grafo aciclico diretto. (it) En programmation orientée objet, l’héritage est un mécanisme qui permet, lors de la déclaration d’une nouvelle classe, d'y inclure les caractéristiques d’une autre classe. (fr) コンピュータプログラミングにおける継承(けいしょう、英: inheritance)とは、任意のオブジェクトの特性を、他のオブジェクトの特性の基礎にするためのメカニズムと定義されている。 基礎にされる継承元は親、その継承先は子と呼ばれて、状態と機能と定数と注釈などが引き継がれるが、コンストラクタとデストラクタは対象外になる。その親と子の関係を、クラスベースOOPはスーパークラスとサブクラスの関係で、プロトタイプベースOOPはプロトタイプとクローンの関係で導入している。 (ja) 객체 지향 프로그래밍(OOP)에서, 상속(inheritance)은 객체들 간의 관계를 구축하는 방법이다. 클래스로 객체가 정의되는 고전 상속에서, 클래스는 기반 클래스, 수퍼클래스, 또는 부모 클래스 등의 기존의 클래스로부터 속성과 동작을 상속받을 수 있다. 그 결과로 생기는 클래스를 파생 클래스, 서브클래스, 또는 자식 클래스라고 한다. 상속을 통한 클래스들의 관계는 계층을 형성한다. 프로토타입 기반 프로그래밍에서는, 객체가 클래스를 따로 정의할 필요 없이 다른 객체로부터 직접 정의될 수 있다. 이러한 특징을 차등 상속이라고 부른다. (ko) Overerving is een term die gebruikt wordt bij de methodiek van het object-georiënteerd programmeren. Het betekent dat een klasse variabelen (eigenschappen) en - afhankelijk van de definitie van de programmeertaal voor methodes - functies en procedures erft van een superklasse. (nl) Dziedziczenie (ang. inheritance) – mechanizm współdzielenia funkcjonalności między klasami. Klasa może dziedziczyć po innej klasie, co oznacza, że oprócz swoich własnych atrybutów oraz zachowań, uzyskuje także te pochodzące z klasy, z której dziedziczy. Klasa dziedzicząca jest nazywana klasą pochodną lub potomną (w j. angielskim: subclass lub derived class), zaś klasa, z której następuje dziedziczenie — klasą bazową (w ang. superclass). Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Klasy pochodne posiadają obok swoich własnych metod i pól, również kompletny interfejs klasy bazowej. W językach programowania z prototypowaniem (np. JavaScript) nie występuje pojęcie klasy, dlatego dziedziczenie zachodzi tam pomiędzy poszczególnymi obiektami. Pojęcie dziedziczenia zostało wprowadzone po raz pierwszy przez twórców języka Simula. (pl) Herança é um princípio de orientação a objetos, que permite que classes compartilhem atributos e métodos, através de "heranças". Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou especializar operações ou atributos. O conceito de herança de várias classes é conhecido como herança múltipla. Como exemplo pode-se observar as classes 'aluno' e 'professor', onde ambas possuem atributos como nome, endereço e telefone. Nesse caso pode-se criar uma nova classe chamada por exemplo, 'pessoa', que contenha as semelhanças entre as duas classes, fazendo com que aluno e professor herdem as características de pessoa, desta maneira pode-se dizer que aluno e professor são subclasses de pessoa. Também podemos dizer que uma classe pode ser abstrata(abstract) ou seja ela não pode ter uma instância, ela apenas "empresta" seus atributos e metódos como molde para novas classes. (pt) Успадкування (англ. inheritance) — це один з принципів об'єктно-орієнтовного програмування, який дає класу можливість використовувати програмний код іншого (базового) класу, доповнюючи його своїми власними деталями реалізації. Іншими словами, під час успадкування відбувається отримання нового (похідного) класу, який містить програмний код базового класу з зазначенням власних особливостей використання. Успадкування належить до типу is-a відношень між класами. При успадкуванні створюється спеціалізована версія вже існуючого класа. (uk) Наследование (англ. inheritance) — концепция объектно-ориентированного программирования, согласно которой абстрактный тип данных может наследовать данные и функциональность некоторого существующего типа, способствуя повторному использованию компонентов программного обеспечения. (ru) 继承(英語:inheritance)是面向对象软件技术当中的一个概念。如果一个类別B「继承自」另一个类別A,就把这个B称为「A的子类」,而把A称为「B的父类別」也可以称「A是B的超类」。继承可以使得子类具有父类別的各种属性和方法,而不需要再次编写相同的代码。在令子类別继承父类別的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类別的原有属性和方法,使其获得与父类別不同的功能。另外,为子类追加新的属性和方法也是常见的做法。一般靜態的物件導向程式語言,繼承屬於靜態的,意即在子類別的行為在編譯期就已經決定,無法在執行期擴充。 有些编程语言支持多重继承,即一个子类可以同时有多个父類別,比如C++编程语言;而在有些编程语言中,一个子類只能继承自一个父類別,比如Java编程语言,这时可以透過實作接口来实现与多重继承相似的效果。 現今物件導向程式設計技巧中,繼承並非以繼承類別的「行為」為主,而是繼承類別的「型態」,使得元件的型態一致。另外在設計模式中提到一個守則,「多用合成,少用繼承」,此守則也是用來處理繼承無法在執行期動態擴充行為的遺憾。 (zh) |
dbo:thumbnail | wiki-commons:Special:FilePath/Single_Inheritance.jpg?width=300 |
dbo:wikiPageExternalLink | https://medium.com/@wrong.about/inheritance-based-on-internal-structure-is-evil-7474cc8e64dc |
dbo:wikiPageID | 2617746 (xsd:integer) |
dbo:wikiPageLength | 29944 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1117052750 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Behavioral_subtyping dbr:Python_(programming_language) dbr:Scala_(programming_language) dbr:Method_overriding dbr:Bjarne_Stroustrup dbr:Delegation_(object-oriented_programming) dbr:Design_by_Contract dbr:Allen_Holub dbr:Decorator_pattern dbr:Design_Patterns dbr:Dynamic_dispatch dbr:Inline_expansion dbr:List_of_object-oriented_programming_languages dbr:Interface_(object-oriented_programming) dbr:Object-oriented_programming dbr:Object_(computer_science) dbr:Class_(computer_programming) dbr:Eiffel_(programming_language) dbr:Go_(programming_language) dbr:Brad_Cox dbr:Connotation_(semiotics) dbr:Constructor_(object-oriented_programming) dbr:Simula dbr:Single_inheritance dbc:Type_systems dbr:Compile_time dbr:Composition_over_inheritance dbr:Delegation_pattern dbr:Friend_function dbr:Operator_overloading dbr:C++ dbr:C++11 dbr:C_Sharp_(programming_language) dbr:Has-a dbr:Late_binding dbr:Liskov_substitution_principle dbr:Data_type dbr:File:Multilevel_Inheritance.jpg dbr:File:Multiple_Inheritance.jpg dbr:File:Single_Inheritance.jpg dbr:Fragile_base_class dbr:PHP dbr:Entity–component–system dbr:Object_composition dbr:Source_code dbr:Prototype-based_programming dbr:Reusability dbr:Role-oriented_programming dbr:Is-a dbr:James_Gosling dbr:Java_(programming_language) dbr:Coupling_(computer_programming) dbc:Object-oriented_programming dbc:Articles_with_example_Python_(programming_language)_code dbr:Binary_file dbr:Code_reuse dbr:Yo-yo_problem dbr:Modular_programming dbr:Directed_acyclic_graph dbr:Software_framework dbr:Square_number dbr:Class-based_programming dbr:Class_diagram dbr:Final_(Java) dbr:Encapsulation_(object-oriented_programming) dbr:Instance_(computer_science) dbr:Instance_variable dbr:Method_signature dbr:Objective-C dbr:Hiding_(programming) dbr:Multiple_inheritance dbr:Virtual_method_table dbr:Diamond_problem dbr:Implementation dbr:Programming_language dbr:Subtyping dbr:Upcasting dbr:Static_dispatch dbr:Polymorphism_in_object-oriented_programming dbr:Virtual_method dbr:Early_binding dbr:Compile-time dbr:Composite_reuse_principle dbr:Cubic_number dbr:Member_function dbr:Subtype_polymorphism dbr:Typecast_(programming) dbr:Class_modifier dbr:File:Method_overriding_in_subclass.svg |
dbp:date | April 2015 (en) |
dbp:reason | Cluttered (en) |
dbp:wikiPageUsesTemplate | dbt:Annotated_link dbt:Authority_control dbt:Citation_needed dbt:Cite_book dbt:Cite_web dbt:Cleanup dbt:Efn dbt:Further dbt:Main dbt:Mono dbt:Nbsp dbt:Notelist dbt:Quotation dbt:R dbt:Reflist dbt:Short_description |
dct:subject | dbc:Type_systems dbc:Object-oriented_programming dbc:Articles_with_example_Python_(programming_language)_code |
rdf:type | owl:Thing yago:Abstraction100002137 yago:ArtificialLanguage106894544 yago:Cognition100023271 yago:Communication100033020 yago:Concept105835747 yago:Content105809192 yago:Idea105833840 yago:Language106282651 yago:ProgrammingLanguage106898352 yago:PsychologicalFeature100023100 yago:WikicatProgrammingLanguageConcepts yago:WikicatProgrammingLanguages |
rdfs:comment | في البرمجة كائنية التوجه، الوراثة (بالإنجليزية: Inheritance) خاصية أساسية في اللغات البرمجية كائنية التوجه، تتمثل في إمكانية بناء صنف (class) على أساس صنف آخر تم بناؤه سابقا (يسمى الصنف العلوي، الأب، أو الأساس) أو أكثر، بحيث «يرث» الصنف الجديد (المشتق، الفرعي) كل خصائص وسلوكيات الصنف (الأصناف) الأم، وبحيث لا يبقى على المبرمج سوى تعريف الخصائص والسلوكيات الإضافية الخاصة بالصنف الفرعي دون تلك المشتركة مع الصنف (الأصناف) الأساس. الوراثة بالإمكانات التي توفرها، آلية لتنظيم العمل وتسهيله عبر إتاحة قابلية إعادة استخدام الشيفرة البرمجية. (ar) Dědičnost je v objektově orientovaném programování způsob, jak ustanovit vztah mezi objekty. V třídové dědičnosti, kde jsou objekty definované třídami, mohou třídy zdědit atributy a chování od předem existujících tříd, které se nazývají , základní třídy nebo super třídy. Výsledné třídy jsou nazývány odvozené třídy, podtřídy nebo potomek třídy. Koncept dědičnosti byl poprvé zaveden pro jazyk Simula v roce 1968. (cs) En programmation orientée objet, l’héritage est un mécanisme qui permet, lors de la déclaration d’une nouvelle classe, d'y inclure les caractéristiques d’une autre classe. (fr) コンピュータプログラミングにおける継承(けいしょう、英: inheritance)とは、任意のオブジェクトの特性を、他のオブジェクトの特性の基礎にするためのメカニズムと定義されている。 基礎にされる継承元は親、その継承先は子と呼ばれて、状態と機能と定数と注釈などが引き継がれるが、コンストラクタとデストラクタは対象外になる。その親と子の関係を、クラスベースOOPはスーパークラスとサブクラスの関係で、プロトタイプベースOOPはプロトタイプとクローンの関係で導入している。 (ja) 객체 지향 프로그래밍(OOP)에서, 상속(inheritance)은 객체들 간의 관계를 구축하는 방법이다. 클래스로 객체가 정의되는 고전 상속에서, 클래스는 기반 클래스, 수퍼클래스, 또는 부모 클래스 등의 기존의 클래스로부터 속성과 동작을 상속받을 수 있다. 그 결과로 생기는 클래스를 파생 클래스, 서브클래스, 또는 자식 클래스라고 한다. 상속을 통한 클래스들의 관계는 계층을 형성한다. 프로토타입 기반 프로그래밍에서는, 객체가 클래스를 따로 정의할 필요 없이 다른 객체로부터 직접 정의될 수 있다. 이러한 특징을 차등 상속이라고 부른다. (ko) Overerving is een term die gebruikt wordt bij de methodiek van het object-georiënteerd programmeren. Het betekent dat een klasse variabelen (eigenschappen) en - afhankelijk van de definitie van de programmeertaal voor methodes - functies en procedures erft van een superklasse. (nl) Успадкування (англ. inheritance) — це один з принципів об'єктно-орієнтовного програмування, який дає класу можливість використовувати програмний код іншого (базового) класу, доповнюючи його своїми власними деталями реалізації. Іншими словами, під час успадкування відбувається отримання нового (похідного) класу, який містить програмний код базового класу з зазначенням власних особливостей використання. Успадкування належить до типу is-a відношень між класами. При успадкуванні створюється спеціалізована версія вже існуючого класа. (uk) Наследование (англ. inheritance) — концепция объектно-ориентированного программирования, согласно которой абстрактный тип данных может наследовать данные и функциональность некоторого существующего типа, способствуя повторному использованию компонентов программного обеспечения. (ru) 继承(英語:inheritance)是面向对象软件技术当中的一个概念。如果一个类別B「继承自」另一个类別A,就把这个B称为「A的子类」,而把A称为「B的父类別」也可以称「A是B的超类」。继承可以使得子类具有父类別的各种属性和方法,而不需要再次编写相同的代码。在令子类別继承父类別的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类別的原有属性和方法,使其获得与父类別不同的功能。另外,为子类追加新的属性和方法也是常见的做法。一般靜態的物件導向程式語言,繼承屬於靜態的,意即在子類別的行為在編譯期就已經決定,無法在執行期擴充。 有些编程语言支持多重继承,即一个子类可以同时有多个父類別,比如C++编程语言;而在有些编程语言中,一个子類只能继承自一个父類別,比如Java编程语言,这时可以透過實作接口来实现与多重继承相似的效果。 現今物件導向程式設計技巧中,繼承並非以繼承類別的「行為」為主,而是繼承類別的「型態」,使得元件的型態一致。另外在設計模式中提到一個守則,「多用合成,少用繼承」,此守則也是用來處理繼承無法在執行期動態擴充行為的遺憾。 (zh) L'herència és un dels conceptes fonamentals de la programació orientació a objectes i té gran importància en el desenvolupament de software. S'utilitza l'herència per crear classes noves a partir de les ja definides. Una classe nova pot ser una extensió o bé una restricció de la classe original. A més d'aquest aspecte estructural, serveix també per documentar les semblances entre les classes, que és particularment important durant les primeres etapes del disseny de software, la nova classe està unida amb la classe original amb una relació "es-un" (engl. Is-A). (ca) Die Vererbung (englisch inheritance) ist eines der grundlegenden Konzepte der Objektorientierung und hat große Bedeutung in der Softwareentwicklung. Die Vererbung dient dazu, aufbauend auf existierenden Klassen neue zu schaffen, wobei die Beziehung zwischen ursprünglicher und neuer Klasse dauerhaft ist. Eine neue Klasse kann dabei eine Erweiterung oder eine Einschränkung der ursprünglichen Klasse sein. Neben diesem konstruktiven Aspekt dient Vererbung auch der Dokumentation von Ähnlichkeiten zwischen Klassen, was insbesondere in den frühen Phasen des Softwareentwurfs von Bedeutung ist. Auf der Vererbung basierende Klassenhierarchien spiegeln strukturelle und verhaltensbezogene Ähnlichkeiten der Klassen wider. (de) In object-oriented programming, inheritance is the mechanism of basing an object or class upon another object (prototype-based inheritance) or class (class-based inheritance), retaining similar implementation. Also defined as deriving new classes from existing ones such as super class or base class and then forming them into a hierarchy of classes. In most class-based object-oriented languages, an object created through inheritance, a "child object", acquires all the properties and behaviors of the "parent object" , with the exception of: constructors, destructor, overloaded operators and friend functions of the base class. Inheritance allows programmers to create classes that are built upon existing classes, to specify a new implementation while maintaining the same behaviors (realizin (en) En programación orientada a objetos, la herencia es, después de la agregación o composición, el mecanismo más utilizado para alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son la reutilización y la extensibilidad. A través de ella, los diseñadores pueden crear nuevas clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (métodos) y finalmente los atributos (variables) de su superclase. (es) In informatica l'ereditarietà è uno dei concetti fondamentali nel paradigma di programmazione a oggetti. Essa consiste in una relazione che il linguaggio di programmazione, o il programmatore stesso, stabilisce tra due classi. Se la classe B eredita dalla classe A, si dice che B è una sottoclasse di A e che A è una superclasse di B. Denominazioni alternative equivalenti, sono classe padre, classe madre o classe base per A e classe figlia o classe derivata per B. A seconda del linguaggio di programmazione, l'ereditarietà può essere ereditarietà singola o semplice (ogni classe può avere al più una superclasse diretta) o multipla (ogni classe può avere più superclassi dirette). (it) Dziedziczenie (ang. inheritance) – mechanizm współdzielenia funkcjonalności między klasami. Klasa może dziedziczyć po innej klasie, co oznacza, że oprócz swoich własnych atrybutów oraz zachowań, uzyskuje także te pochodzące z klasy, z której dziedziczy. Klasa dziedzicząca jest nazywana klasą pochodną lub potomną (w j. angielskim: subclass lub derived class), zaś klasa, z której następuje dziedziczenie — klasą bazową (w ang. superclass). Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Klasy pochodne posiadają obok swoich własnych metod i pól, również kompletny interfejs klasy bazowej. (pl) Herança é um princípio de orientação a objetos, que permite que classes compartilhem atributos e métodos, através de "heranças". Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou especializar operações ou atributos. O conceito de herança de várias classes é conhecido como herança múltipla. Como exemplo pode-se observar as classes 'aluno' e 'professor', onde ambas possuem atributos como nome, endereço e telefone. Nesse caso pode-se criar uma nova classe chamada por exemplo, 'pessoa', que contenha as semelhanças entre as duas classes, fazendo com que aluno e professor herdem as características de pessoa, desta maneira pode-se dizer que aluno e professor são subclasses de pessoa. Também podemos dizer que uma classe pode ser abstrata(abstract) ou seja ela não pode (pt) |
rdfs:label | وراثة (حوسبة) (ar) Herència (programació) (ca) Dědičnost (objektově orientované programování) (cs) Vererbung (Programmierung) (de) Herencia (informática) (es) Héritage (informatique) (fr) Ereditarietà (informatica) (it) Inheritance (object-oriented programming) (en) 상속 (객체 지향 프로그래밍) (ko) 継承 (プログラミング) (ja) Dziedziczenie (programowanie) (pl) Overerving (informatica) (nl) Herança (programação orientada a objetos) (pt) Наследование (программирование) (ru) Arv (programmering) (sv) 继承 (计算机科学) (zh) Успадкування (програмування) (uk) |
owl:sameAs | freebase:Inheritance (object-oriented programming) http://d-nb.info/gnd/4277478-0 yago-res:Inheritance (object-oriented programming) wikidata:Inheritance (object-oriented programming) dbpedia-ar:Inheritance (object-oriented programming) dbpedia-az:Inheritance (object-oriented programming) http://bs.dbpedia.org/resource/Nasljeđivanje_(programiranje) dbpedia-ca:Inheritance (object-oriented programming) dbpedia-cs:Inheritance (object-oriented programming) dbpedia-de:Inheritance (object-oriented programming) dbpedia-es:Inheritance (object-oriented programming) dbpedia-fa:Inheritance (object-oriented programming) dbpedia-fi:Inheritance (object-oriented programming) dbpedia-fr:Inheritance (object-oriented programming) dbpedia-he:Inheritance (object-oriented programming) http://hi.dbpedia.org/resource/वंशानुक्रम_(कंप्यूटर_विज्ञान) dbpedia-hu:Inheritance (object-oriented programming) http://hy.dbpedia.org/resource/Ժառանգում_(ծրագրավորում) dbpedia-is:Inheritance (object-oriented programming) dbpedia-it:Inheritance (object-oriented programming) dbpedia-ja:Inheritance (object-oriented programming) dbpedia-ka:Inheritance (object-oriented programming) dbpedia-ko:Inheritance (object-oriented programming) http://lt.dbpedia.org/resource/Paveldėjimas_(programavimas) dbpedia-ms:Inheritance (object-oriented programming) dbpedia-nl:Inheritance (object-oriented programming) dbpedia-nn:Inheritance (object-oriented programming) dbpedia-pl:Inheritance (object-oriented programming) dbpedia-pt:Inheritance (object-oriented programming) dbpedia-ru:Inheritance (object-oriented programming) dbpedia-simple:Inheritance (object-oriented programming) dbpedia-sr:Inheritance (object-oriented programming) dbpedia-sv:Inheritance (object-oriented programming) http://ta.dbpedia.org/resource/மரபியல்பு_(கணினியியல்) dbpedia-tr:Inheritance (object-oriented programming) dbpedia-uk:Inheritance (object-oriented programming) dbpedia-vi:Inheritance (object-oriented programming) dbpedia-zh:Inheritance (object-oriented programming) https://global.dbpedia.org/id/21jSh |
prov:wasDerivedFrom | wikipedia-en:Inheritance_(object-oriented_programming)?oldid=1117052750&ns=0 |
foaf:depiction | wiki-commons:Special:FilePath/Method_overriding_in_subclass.svg wiki-commons:Special:FilePath/Multilevel_Inheritance.jpg wiki-commons:Special:FilePath/Multiple_Inheritance.jpg wiki-commons:Special:FilePath/Single_Inheritance.jpg |
foaf:isPrimaryTopicOf | wikipedia-en:Inheritance_(object-oriented_programming) |
is dbo:wikiPageDisambiguates of | dbr:Inherit dbr:Inheritance_(disambiguation) |
is dbo:wikiPageRedirects of | dbr:Base_class dbr:Subclass_(computer_science) dbr:Super_(computer_science) dbr:Superclass_(computer_science) dbr:Inheritance_(computer_science) dbr:Hierarchy_(object-oriented_programming) dbr:Concrete_superclass dbr:Subclassing_(OOP) dbr:Static_inheritance dbr:Parent_class dbr:Class_inheritance dbr:Classical_inheritance dbr:Implementation_inheritance dbr:Superclass_(database_theory) dbr:Derived_class dbr:Early_binding dbr:Inheritance-oop dbr:Inheritance_(computer_science)/object-oriented_programming dbr:Inheritance_(programming) dbr:Inheritance_hierarchy dbr:Inheritance_in_object-oriented_programming dbr:Inherited_class dbr:Object_inheritance dbr:Is-a_relation dbr:Subclass_(database_theory) dbr:Type_inheritance |
is dbo:wikiPageWikiLink of | dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:Encapsulation_(computer_programming) dbr:Base_class dbr:Brian_Harvey_(lecturer) dbr:Bridge_pattern dbr:Delegation_(object-oriented_programming) dbr:Design_by_contract dbr:History_of_the_Actor_model dbr:Julia_(programming_language) dbr:Umple dbr:Vanguard_(microkernel) dbr:Virtuoso_Universal_Server dbr:Dependency_injection dbr:Design_Patterns dbr:Index_of_object-oriented_programming_articles dbr:Intersection_type dbr:Inherit dbr:Inheritance_(disambiguation) dbr:Numerical_tower dbr:Rust_(programming_language) dbr:Generalization dbr:Generic_function dbr:Object-oriented_programming dbr:Object_(computer_science) dbr:Node_graph_architecture dbr:Wildcard_(Java) dbr:Circle–ellipse_problem dbr:Game_Oriented_Assembly_Lisp dbr:Go_(programming_language) dbr:Constructor_(object-oriented_programming) dbr:AngelScript dbr:Lua_(programming_language) dbr:Löve_(game_engine) dbr:MATLAB dbr:Mama_(software) dbr:Silk_Test dbr:Simula dbr:Subclass_(computer_science) dbr:Comparison_of_object–relational_database_management_systems dbr:Composition_filters dbr:Computer_program dbr:Delegation_pattern dbr:Friend_class dbr:Fully_qualified_name dbr:Polymorphism_(computer_science) dbr:PowerBuilder dbr:Partial_template_specialization dbr:Super_(computer_science) dbr:Test-driven_development dbr:Postcondition dbr:Object-Z dbr:C++ dbr:CLU_(programming_language) dbr:Cecil_(programming_language) dbr:Turtles_all_the_way_down dbr:Type_introspection dbr:Type_punning dbr:HBasic dbr:Has-a dbr:Lingo_(programming_language) dbr:Agile_Automation dbr:EROS_(microkernel) dbr:Fragile_base_class dbr:Nim_(programming_language) dbr:Oxygene_(programming_language) dbr:Differential_inheritance dbr:Forwarding_(object-oriented_programming) dbr:History_of_Python dbr:List_of_Java_keywords dbr:QuickDraw dbr:Record_(computer_science) dbr:Hierarchy dbr:Is-a dbr:Assembly_language dbr:Abstraction_(computer_science) dbr:Superclass_(computer_science) dbr:Swift_(programming_language) dbr:T_(programming_language) dbr:Hidden_algebra dbr:Yo-yo_problem dbr:Mixin dbr:Django_(web_framework) dbr:Dot-decimal_notation dbr:Software_construction dbr:Solidity dbr:Squirrel_(programming_language) dbr:Class-based_programming dbr:Finalizer dbr:Inheritance_(computer_science) dbr:Oberon-2 dbr:Obliq dbr:Occam_(programming_language) dbr:Ontology_(information_science) dbr:Hierarchy_(object-oriented_programming) dbr:Multiple_inheritance dbr:Real-Time_Object-Oriented_Modeling dbr:Schizophrenia_(object-oriented_programming) dbr:Scope_(computer_science) dbr:Skeleton_(computer_programming) dbr:Skipper_(computer_software) dbr:Virtual_method_table dbr:Extension_method dbr:Concrete_superclass dbr:Imperative_programming dbr:List_of_software_development_philosophies dbr:Object-based_language dbr:Object-oriented_operating_system dbr:Object–relational_database dbr:Occam-π dbr:Plant_Simulation dbr:Subclassing_(OOP) dbr:Z++ dbr:New_and_delete_(C++) dbr:Workplace_Shell dbr:Semantic_network dbr:SOLID dbr:Static_inheritance dbr:Parent_class dbr:Class_inheritance dbr:Classical_inheritance dbr:Implementation_inheritance dbr:Superclass_(database_theory) dbr:Derived_class dbr:Early_binding dbr:Inheritance-oop dbr:Inheritance_(computer_science)/object-oriented_programming dbr:Inheritance_(programming) dbr:Inheritance_hierarchy dbr:Inheritance_in_object-oriented_programming dbr:Inherited_class dbr:Object_inheritance dbr:Is-a_relation dbr:Subclass_(database_theory) dbr:Type_inheritance |
is foaf:primaryTopic of | wikipedia-en:Inheritance_(object-oriented_programming) |