<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.512.cz/skins/common/feed.css?301"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>https://www.512.cz/index.php?action=history&amp;feed=atom&amp;title=D%C4%9Bdi%C4%8Dnost</id>
		<title>Dědičnost - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="https://www.512.cz/index.php?action=history&amp;feed=atom&amp;title=D%C4%9Bdi%C4%8Dnost"/>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=D%C4%9Bdi%C4%8Dnost&amp;action=history"/>
		<updated>2026-10-24T08:44:11Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.17.0</generator>

	<entry>
		<id>https://www.512.cz/index.php?title=D%C4%9Bdi%C4%8Dnost&amp;diff=411&amp;oldid=prev</id>
		<title>Acolade: kategorizace</title>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=D%C4%9Bdi%C4%8Dnost&amp;diff=411&amp;oldid=prev"/>
				<updated>2014-02-20T06:37:10Z</updated>
		
		<summary type="html">&lt;p&gt;kategorizace&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 20. 2. 2014, 06:37&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tedy je li B potomkem A, je li List&amp;lt;B&amp;gt; potomkem List&amp;lt;A&amp;gt;. Tento mechanismus však ve většině jazyků nefunguje, a je nutné vytvořit List&amp;lt;A&amp;gt; a naskládat do něj objekty B, a při výběru je jeden po druhém přetypovat zpět na B, jelikož List&amp;lt;A&amp;gt; vrací objekty typu A.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;tedy je li B potomkem A, je li List&amp;lt;B&amp;gt; potomkem List&amp;lt;A&amp;gt;. Tento mechanismus však ve většině jazyků nefunguje, a je nutné vytvořit List&amp;lt;A&amp;gt; a naskládat do něj objekty B, a při výběru je jeden po druhém přetypovat zpět na B, jelikož List&amp;lt;A&amp;gt; vrací objekty typu A.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Kategorie:fav-kiv-bzinf]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Acolade</name></author>	</entry>

	<entry>
		<id>https://www.512.cz/index.php?title=D%C4%9Bdi%C4%8Dnost&amp;diff=68&amp;oldid=prev</id>
		<title>Tester: Založena nová stránka: Základním stavebním blokem OOP je dědičnost. Dědění je způsob deklarace třídy tak, že využijeme jinou třídu jako předka.  Naše děděná třída tedy můž...</title>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=D%C4%9Bdi%C4%8Dnost&amp;diff=68&amp;oldid=prev"/>
				<updated>2011-08-08T15:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;Založena nová stránka: Základním stavebním blokem OOP je dědičnost. Dědění je způsob deklarace třídy tak, že využijeme jinou třídu jako předka.  Naše děděná třída tedy můž...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Základním stavebním blokem OOP je dědičnost. Dědění je způsob deklarace třídy tak, že využijeme jinou třídu jako předka. &lt;br /&gt;
Naše děděná třída tedy může &lt;br /&gt;
&lt;br /&gt;
Převzít metody a atributy předka&lt;br /&gt;
Definovat nové metody a atributy&lt;br /&gt;
Přepsat metody a atributy předka&lt;br /&gt;
&lt;br /&gt;
Ve většině jazyků jsou všechny třídy implicitně děděny od třídy Object. Ve většině jazyků (snad kromě C++) zle dědit pouze od jedné třídy. Pro další dědění lze použít rozhraní. &lt;br /&gt;
&lt;br /&gt;
V Javě dědíme pomocí klíčového slova extends, tedy&lt;br /&gt;
&lt;br /&gt;
Class B extends A {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
V jiných jazycích (C++, C#, ...) používáme dvojtečku, přičemž první třída za dvojtečkou je obvykle dědění, ostatní jsou implementace rozhraní (i když v C++ je to jedno, tam můžeme implementovat i dědit od více tříd)&lt;br /&gt;
&lt;br /&gt;
S pojmem dědění úzce souvisí i pojem Polymorfismus. Ten nám umožňuje nejen hiearchii objektů rozšiřovat, ale také ji využívat opačným směrem, tedy dědí-li třída B od třídy A, můžeme použít konstrukci (přiřazení)&lt;br /&gt;
&lt;br /&gt;
B b = new B();&lt;br /&gt;
A a = b;&lt;br /&gt;
&lt;br /&gt;
To je extrémně důležité pro ADT, kdy vytvoříme strukturu pro A, a můžeme do ní ukládat objekty A i B.&lt;br /&gt;
&lt;br /&gt;
Otázka je, pokud voláme metody A.Metoda, a metoda B tuto metodu má také, co se děje?&lt;br /&gt;
Pro snažší pochopení řekněme, že máme typ pointeru a typ objektu. V předchozí ukázce je a typu A a b typu B, ale typ pointeru a je A a typ objektu (pod tímto pointerem) a je B.&lt;br /&gt;
&lt;br /&gt;
Některé jazyky podporují Virtualitu metod. Virtuální metoda je metoda, která (je li překryta) je volána vždy z typu objektu, který překrývá. Pokud překryta není (nebo pokud je volána z třídy, která tuto virtuální metodu obsahuje), volá se ona. Voláme-li tedy a.Metoda() z předchozího příkladu, zavolá se ve skutečnosti b.Metoda(), protože a ukazuje na typ b. Java má všechny metody virtuální. &lt;br /&gt;
&lt;br /&gt;
Druhou možností je použít nevirtuální metody. Taková metoda nemůže být překryta, nicméně může být znovu vytvořena (předefinována řekněme) pro daná objekt. V praxi to znamená, že je volána z typu Pointeru který na objekt ukazuje, tedy voláme li a.Metoda() zavoláme opravdu a.Metoda().&lt;br /&gt;
&lt;br /&gt;
Za poslední zmínku stojí Kovariance typů. Ta znamená, že je li typ kovariantní, lze vzájemně přiřazovat obalující typy, tedy lze provést např.&lt;br /&gt;
&lt;br /&gt;
pokud B extends A: &lt;br /&gt;
&lt;br /&gt;
List&amp;lt;A&amp;gt; a = new List&amp;lt;B&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
tedy je li B potomkem A, je li List&amp;lt;B&amp;gt; potomkem List&amp;lt;A&amp;gt;. Tento mechanismus však ve většině jazyků nefunguje, a je nutné vytvořit List&amp;lt;A&amp;gt; a naskládat do něj objekty B, a při výběru je jeden po druhém přetypovat zpět na B, jelikož List&amp;lt;A&amp;gt; vrací objekty typu A.&lt;/div&gt;</summary>
		<author><name>Tester</name></author>	</entry>

	</feed>