Dědičnost (objektově orientované programování)

Tento článek je o dědičnosti v objektově orientovaném programování. O biologické dědičnosti pojednává článek Dědičnost.

Dědičnost je v objektově orientovaném programování způsob, jak ustanovit is-a 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í rodičovské třídy, 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 se poprvé objevil v jazyce Simula 67.

Podtřídy a super třídy

Podtřída je modulární, odvozená třída, která dědí jednu nebo více jazykových entit od jedné nebo více tříd (super tříd). Sémantika dědičnosti se v různých programovacích jazycích liší, ale obvykle podtřída dědí instanční proměnné a členské funkce svého rodiče. Některé jazyky podporují dědičnost i jiné konstrukce. Rodičovská třída zavádí společné rozhraní a základní funkcionalitu, kterou specializovaná podtřída může zdědit, modifikovat nebo potlačit. Reference na třídu, může odkazovat na jednu z jeho podtříd. Jaká třída je odkazována je nemožné předpovídat během kompilace. Pro volání funkcí objektů více různých tříd je použito uniformní rozhraní.

Překrytí

(angl. overriding) Mnoho objektově orientovaných jazyků dovoluje objektu nebo třídě nahrazení funkce, která byla zděděná. Tento proces je nazýván překrytí.[1][2] Toto přináší komplikaci: kterou verzi funkce instance zděděné třídy používá – tu co je součástí vlastní třídy, nebo tu co je z rodičovské třídy? Odpověď se liší jazyk od jazyka, nějaké jazyky obsahují deklarace pro určení, že určité metody nemohou být překryty, některé obsahují deklarační slova pro označení překrytých metod.

Dědičnost je mechanizmus kde podtřída znovu použije kód rodičovské třídy. V základu si podtřída zachovává všechny operace rodičovské třídy.

V následujícím příkladu v jazyce Python, podtřída CubeSumComputer přepisuje metodu transform() rodičovské třídy SquareSumComputer. Podtřída znovu používá všechen kód rodičovské třídy, až na metodu transform().

class SquareSumComputer:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def transform(self, x):
        return x * x

    def inputs(self):
        return range(self.a, self.b)

    def compute(self):
        return sum(self.transform(value) for value in self.inputs())

class CubeSumComputer(SquareSumComputer):
    def transform(self, x):
        return x * x * x

Třídy, které nelze dědit

V některých programovacích jazycích může být třída prohlášena za neděditelnou přidáním modifikátorů do deklarace třídy. Například v jazyce Java klíčové slovo „final“, nebo v jazyce C# slovo „sealed“. Podobné modifikátory se v deklaraci píší před slovo „class“. Tyto třídy zakazují jejich znovupoužitelnost, což se používá převážně v případě, že se kód distribuuje jako předkompilované binární soubory a ne jako zdrojový kód.

Metody, které nemohou být překryty

Stejně jako třídy mohou být neděditelné, metody/funkce mohou být vyhlášeny za nepřekrytelné (nahrazeny novou funkcí stejného jména v podtřídě). Metody deklarované jako private jsou nepřekrytelné jednoduše proto, že nejsou přístupné z jiných tříd než jejich hlavní. Pro nepřekrytelné funkce (které jsou dostupné potomkům) se používají stejná klíčová slova jako u třídy (final, sealed).

Virtuální metody

Pokud je metoda v rodičovské třídě deklarovaná jako virtuální, potom její volání z rodičovské třídy bude automaticky přesměrováno na metodu potomka (pokud existuje). Některé jazyky požadují, aby byly virtuální funkce specificky deklarovány (C++), v jiných jazycích jsou všechny metody virtuální (Java).

Reference

  1. PECINOVSKÝ, Rudolf. Java 7: učebnice objektové architektury pro začátečníky. Praha : Grada, 2012. S. 278 Dostupné online.
  2. PROCHÁZKA, David. Základy programování objektových aplikací v C++ (ESF). Brno : Mendelova univerzita v Brně. kap. Dědičnost, část Přetížení a překrytí metody Dostupné online.

V tomto článku byl použit překlad textu z článku Inheritance (object-oriented programming) na anglické Wikipedii.

Read other articles:

Sebuah itasha yang ditemui di parkiran Pluit Village, 27 Oktober 2013. sebuah itasha di Tokyo, Japan menampilkan Sakura dari Cardcaptor Sakura Itasha (痛車code: ja is deprecated ), secara harfiah mobil yang tersakiti, adalah sebuah istilah dalam bahasa Jepang untuk sebuah kegemaran otaku di mana seseorang menghiasi badan mobil mereka dengan tokoh fiktif dari anime, manga, maupun permainan video (khususnya permainan bishōjo atau eroge). Tokoh-tokoh ini didominasi oleh wanita moe. Hiasan yan...

 

Charles County, Maryland BenderaSealLokasi di negara bagian MarylandLokasi negara bagian Maryland di Amerika SerikatDidirikan1658Asal namaCharles CalvertSeatLa PlataWilayah • Keseluruhan64.322 sq mi (166.593 km2) • Daratan46.100 sq mi (119.398 km2) • Perairan18.222 sq mi (47.195 km2), 28.33%Populasi • (2010)146.551 • Kepadatan318/sq mi (122,7/km²)Distrik kongres5thZona waktuTimur: UT...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (يوليو 2019) الحدثكأس فرنسا 1921–22  [لغات أخرى]‏ نادي النجم الأحمر سانت أوين ستاد رين 2 0 التاريخ7 مايو 1922  الحضو...

A Whiter Shade of Pale Single de Procol Harumextrait de l'album Procol Harum Face A A Whiter Shade of Pale Face B Lime Street Blues Sortie 12 mai 1967 Enregistré Studios Olympic, Londres Durée 4:03 Genre pop psychédélique, rock progressif Auteur Keith Reid (en) Compositeur Gary Brooker, Matthew Fisher Producteur Denny Cordell (en) Label Deram Classement 1er (Royaume-Uni)5e (États-Unis) Singles de Procol Harum Homburg(1967)Pistes de Procol Harum Conquistadormodif...

 

В Википедии есть статьи о других людях с такой фамилией, см. Армстронг-Джонс. Чарльз Армстронг-Джонс Имя при рождении брит. англ. The Honourable Charles Patrick Inigo Armstrong-Jones the III Дата рождения 1 июля 1999(1999-07-01) (24 года) Место рождения Вестминстер, Большой Лондон, Англия, Великобритания ...

 

تفجير إب   المعلومات الموقع المركز الثقافي، إب، اليمن التاريخ 31 ديسمبر 2014 نوع الهجوم تفجير انتحاري الخسائر الوفيات +49 الإصابات 70 منفذون محتملون جماعة أنصار الشريعة تعديل مصدري - تعديل   تفجير إب 2014 أو تفجير المركز الثقافي بإب هي تفجير انتحاري في مبنى المركز الثقافي حد...

حركة التحرير الوطني الفلسطيني (فتح) شعار حركة فتح البلد دولة فلسطين  التأسيس تاريخ التأسيس 1 يناير 1965 المؤسسون ياسر عرفات، عادل عبد الكريم ياسين، خليل الوزير، عبدالله الدنان، توفيق شديد قائد الحزب محمود عباس  القادة محمود عباس الأمين العام جبريل الرجوب  المقرات ال...

 

Genus of ticks DermacentorTemporal range: Neogene–present PreꞒ Ꞓ O S D C P T J K Pg N Dermacentor occidentalis Scientific classification Kingdom: Animalia Phylum: Arthropoda Class: Arachnida Subclass: Acari Superorder: Parasitiformes Order: Ixodida Family: Ixodidae Genus: DermacentorC.L.Koch, 1844 [1] Type species Dermacentor reticulatus(Fabricius, 1794) Synonyms Amblyocentor Schulze, 1932 Anocentor Schulze, 1937 Dermacentor is a genus of ticks in the family Ixodidae, the h...

 

Chemical element with atomic number 42 Chemical element, symbol Mo and atomic number 42Molybdenum, 42MoMolybdenumPronunciation/məˈlɪbdənəm/ ​(mə-LIB-də-nəm)Appearancegray metallicStandard atomic weight Ar°(Mo)95.95±0.01[1]95.95±0.01 (abridged)[2] Molybdenum in the periodic table Hydrogen Helium Lithium Beryllium Boron Carbon Nitrogen Oxygen Fluorine Neon Sodium Magnesium Aluminium Silicon Phosphorus Sulfur Chlorine Argon Potassium Calcium Sc...

U.S. House Districts in the state of Iowa Iowa's congressional districts since 2023. Iowa is divided into four congressional districts, each represented by a member of the United States House of Representatives. The state's congressional map is roughly divided by quadrants in the northeast, northwest, southeast, and southwest sections of Iowa. The districts were represented by three Republicans and one Democrat from the 2014 elections to the 2020 elections, with a brief period of Democratic c...

 

American cinematographer Ernest MillerVictor McLaglen and Lois Wilson in Laughing at Life (1933)Born(1885-03-07)March 7, 1885Pasadena, California, USDiedApril 23, 1957(1957-04-23) (aged 72)Los Angeles, California, USOccupationCinematographerYears active1921–1956 Ernest Miller (March 7, 1885 – April 23, 1957) was an American cinematographer who was nominated for an Academy Award at the 1939 Oscars for Best Cinematography for the film Army Girl, sharing the nomination with Harry J...

 

浣熊属 浣熊(Procyon lotor) 科学分类 界: 动物界 Animalia 门: 脊索动物门 Chordata 纲: 哺乳纲 Mammalia 目: 食肉目 Carnivora 科: 浣熊科 Procyonidae 亚科: 浣熊亚科 Procyoninae 属: 浣熊属 ProcyonStorr, 1780 浣熊属(学名:Procyon)是食肉目浣熊科的一属,包括以下几种:[1] 食蟹浣熊(Procyon cancrivorus) 浣熊(Procyon lotor) †巴岛浣熊(Procyon lotor gloveralleni) 特岛浣熊(Procyon loto...

Poche de Royan et de la pointe de Grave Vestige du fort de Suzac à Saint-Georges-de-Didonne. Informations générales Date 12 septembre 1944[1] - 17/30 avril 1945 Lieu Royan et la presqu'île d'Arvert - pointe de Grave - Sud de l'île d'Oléron Issue Victoire Alliée Reddition allemande le 17 avril 1945 : Royan20 avril 1945 : pointe de Grave30 avril 1945 : île d'Oléron Belligérants  France États-Unis  Reich allemand Commandants • Edgard de Larminat• Henri Ad...

 

Van Mildert CollegeUniversitas DurhamVan Mildert CollegeLambang kebesaran Van Mildert CollegeSenjata: Merah darah, dua bilah sabit di saltir, yang utama adalah salib perak Santo Kutbertus.                                               LokasiMillhill Lane, Durham DH1 3LHJulukanMildertMotobahasa Latin: Sic vos non vobisMoto dalam bahasa InggrisThus do ye, No...

 

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: 30/30-150 – news · newspapers · books · scholar · JSTOR (January 2008) (Learn how and when to remove this m...

Twin towns of Burhaniye Map of Turkey This is a list of places in Turkey which have standing links to local communities in other countries known as town twinning (usually in Europe) or sister cities (usually in the rest of the world). A Adapazarı[1] Klina, Kosovo Louisville, United States Afyonkarahisar[2] Cheboksary, Russia Hamm, Germany Latakia, Syria Peja, Kosovo Turkistan, Kazakhstan Yunfu, China Akhisar[3] Donji Vakuf, Bosnia and Herzegovina Gostivar, North Mace...

 

English association football player and manager (1969–2019) Justin Edinburgh Edinburgh in 2016Personal informationFull name Justin Charles Edinburgh[1]Date of birth (1969-12-18)18 December 1969[1]Place of birth Basildon, England[1]Date of death 8 June 2019(2019-06-08) (aged 49)[2]Place of death Basildon, EnglandHeight 5 ft 10 in (1.78 m)[3]Position(s) Left back[1]Senior career*Years Team Apps (Gls)1988–1990 Southend Unite...

 

Segunda Liga 2020-2021 Competizione Segunda Liga Sport Calcio Edizione 30° Organizzatore Liga Portugal Date dal 10 settembre 2020al 22 maggio 2021 Luogo  Portogallo Partecipanti 18 Risultati Vincitore  Estoril Praia(3º titolo) Altre promozioni  Vizela Arouca Retrocessioni  Cova da Piedade Oliveirense Statistiche Miglior marcatore Cassiano (16) Cronologia della competizione 2019-2020 2021-2022 Manuale La Segunda Liga 2020-2021 è stata la trentunes...

神仙·老師·狗Teacher Gangstar类型偶像劇格式校園青春喜劇编剧鄭婉玭、徐慕樺、鄭英敏、李美河导演羅至中、郝心翔主演楊一展、李佳豫、王樂妍、方志友、李京恬、張甯兒制作国家/地区 中華民國(臺灣)语言國語集数30集每集长度60分鐘(含廣告)制作制作人曹景德监制鮑依欣、陳佩芝摄影魏思傑制作公司景得傳播有限公司台視主頻、台視HD台、Viu香港首播 图像制式...

 

吉田五十八 生誕 1894年12月19日東京府東京市日本橋区(現在の東京都中央区日本橋)死没 (1974-03-24) 1974年3月24日(79歳没)東京都国籍 日本出身校 東京美術学校職業 建築家受賞 日本芸術院賞(1952年)文化勲章(1964年)贈従三位、贈勲一等瑞宝章(1974年、没時叙位叙勲) 所属 吉田五十八研究室建築物 日本芸術院会館五島美術館大和文華館中宮寺本堂梅原竜三郎邸 吉田 ...