<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>http://www.kiwiki.info/index.php?action=history&amp;feed=atom&amp;title=Java_-_rozhrania</id>
	<title>Java - rozhrania - História úprav</title>
	<link rel="self" type="application/atom+xml" href="http://www.kiwiki.info/index.php?action=history&amp;feed=atom&amp;title=Java_-_rozhrania"/>
	<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Java_-_rozhrania&amp;action=history"/>
	<updated>2026-04-16T18:23:12Z</updated>
	<subtitle>História úprav pre túto stránku na wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Java_-_rozhrania&amp;diff=8438&amp;oldid=prev</id>
		<title>Juraj na 18:13, 5. december 2010</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Java_-_rozhrania&amp;diff=8438&amp;oldid=prev"/>
		<updated>2010-12-05T18:13:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sk&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Verzia zo dňa a času 18:13, 5. december 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot; &gt;Riadok 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    public void run()  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    public void run()  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Rozhranie definujúce udalosti===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pri programovaní vizuálnych aplikácií potebujeme zachytiť udalosti ako je napríklad kliknutie myšou, stlačenie klávesy atď. Tieto udalosti môžeme priradiť napríklad appletu, alebo nejakému komponentu na applete, resp. oknovej aplikácii. Príklady udalostí a ich spracovania v appletoch sú v časti [[Java applety - interakcia s používateľom]]. Vo všeobecnosti ale platí, že zachytávanie udalostí môžem pridávať aj komponentom aplikácie. Napríklad tlačidlu zadefinujem udalosti &amp;quot;po kliknutí&amp;quot; a textovému bloku môžem zadefinovať udalosť &amp;quot;po stlačení klávesu&amp;quot;. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;====MouseListener====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozhranie MouseListener definuje metódy, ktoré ošetrujú udalosti spôsobené akciami myši. Toto rozhranie obsahuje deklaráciu metód:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*mouseClicked&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*mouseEntered&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*mouseExited&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*mousePressed&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*mouseReleased&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;====MouseMotionListener====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozhranie MouseMotionListenerdefinuje metódy, ktoré ošetrujú udalosti spôsobené pohybom myši. Toto rozhranie obsahuje deklaráciu metód:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*mouseDragged&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*mouseMoved&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;====KeyListener====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozhranie KeyListenermetódy, ktoré ošetrujú udalosti spôsobené akciami klávesnice. Toto rozhranie obsahuje deklaráciu metód:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*keyPressed&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*keyReleased&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*keyTyped&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Java Collections Framework===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Java Collections Framework===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Java Collections Framework je knižnica rozhraní pre prácu s dátovými štruktúrami ako sú množina, zoznam, pole a iné. Nasledujúce rozhrania umožňujú pracovať so zložitejšími dátovými štruktúrami rôznymi spôsobmi: ako s poľom, ako so zoznamom, ako s množinou...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Java Collections Framework je knižnica rozhraní pre prácu s dátovými štruktúrami ako sú množina, zoznam, pole a iné. Nasledujúce rozhrania umožňujú pracovať so zložitejšími dátovými štruktúrami rôznymi spôsobmi: ako s poľom, ako so zoznamom, ako s množinou...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Juraj</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Java_-_rozhrania&amp;diff=8432&amp;oldid=prev</id>
		<title>Juraj: Vytvorená stránka „{{Navigacne menu - java}} {{Draft}}  Na rozdiel on niektorých programovacách jazykov (napr. C++), v Jave nie je dovolená viacnásobná dedičnosť. Avšak možnosť dede…“</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Java_-_rozhrania&amp;diff=8432&amp;oldid=prev"/>
		<updated>2010-12-02T21:49:08Z</updated>

		<summary type="html">&lt;p&gt;Vytvorená stránka „{{Navigacne menu - java}} {{Draft}}  Na rozdiel on niektorých programovacách jazykov (napr. C++), v Jave nie je dovolená viacnásobná dedičnosť. Avšak možnosť dede…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Navigacne menu - java}}&lt;br /&gt;
{{Draft}}&lt;br /&gt;
&lt;br /&gt;
Na rozdiel on niektorých programovacách jazykov (napr. C++), v Jave nie je dovolená viacnásobná dedičnosť. Avšak možnosť dedenia z viacerých tried je niekedy veľmi potrebná. Riešením tohoto problému je v Jave mechanizmus '''rozhraní'''. Rozhranie je taktiež trieda (aj keď špeciálna). Termín implementácia rozhrania pre triedu potomka znamená, že táto trieda &amp;quot;zdedí&amp;quot; triedu v ktorej definujeme rozhranie.&lt;br /&gt;
&lt;br /&gt;
==Definícia rozhrania==&lt;br /&gt;
Rozhranie sa používa pre vytváranie generických, resp. všeobecných šablón, ktoré môžu byť použité v iných triedach (normálnych alebo abstraktných). V triede rozhrania sú len deklarácie metód, ktoré sú implicitne definované ako verejné (public) a abstraktné (abstract). Môžu obsahovať aj vlastnosti, ktoré sú implicitne verejné (public) a statické konštanty (static final). Definícia rozhrania začína kľúčovým slovom '''interface'''. Z rozhrania, podobne ako z abstraktnej triedy nemôže byť vytvorený objekt.&lt;br /&gt;
&lt;br /&gt;
Mechanizmus dedenia je povolený aj pri rozhraniach. Znamená to že môžeme vytvoriť rozhranie, ktoré bude rozširovať iné rozhranie. Java nepodporuje viacnásobné dedenie, avšak je možné použiť viacnásobnú implementáciu rozhraní&amp;lt;ref&amp;gt;Java Abstract class and Interface - http://www.javabeginner.com/learn-java/java-abstract-class-and-interface&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Známe rozhrania v Jave==&lt;br /&gt;
===Rozhranie Runnable===&lt;br /&gt;
Rozhranie Runnable poskytuje prácu s vláknami (threads). Obsahuje jednu metódu:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   public void run() &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Java Collections Framework===&lt;br /&gt;
Java Collections Framework je knižnica rozhraní pre prácu s dátovými štruktúrami ako sú množina, zoznam, pole a iné. Nasledujúce rozhrania umožňujú pracovať so zložitejšími dátovými štruktúrami rôznymi spôsobmi: ako s poľom, ako so zoznamom, ako s množinou...&lt;br /&gt;
====Rozhrnie List&amp;lt;E&amp;gt;====&lt;br /&gt;
Toto rozhranie definuje metódy pre prácu s dátovou štruktúrou zoznam (List). Vybrané metódy z tohto rozhrania:&lt;br /&gt;
* ''boolean add(E o);'' Do zoznamu pridá objekt o (objekt o je univerzálneho typu - E)&lt;br /&gt;
* ''void clear();'' Zoznam sa vyprázdni.&lt;br /&gt;
* ''boolean isEmpty();'' Testuje, či je zoznam prázdny&lt;br /&gt;
* ''int size();'' Vráti veľkosť zoznamu&lt;br /&gt;
* ''Object[] toArray();'' Vráti zoznam ako pole objektov.&lt;br /&gt;
====Rozhrnie Set&amp;lt;E&amp;gt;====&lt;br /&gt;
Toto rozhranie definuje metódy pre prácu s dátovou štruktúrou množina (Set). Keďže toto aj predchádzajúce rozhranie je potomkom rozhrania Collection, obsahuje rovnaké metódy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Použitie rozhrnia Set a jeho implementácie HashSet'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.util.SortedSet;&lt;br /&gt;
&lt;br /&gt;
public class testZOO {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        Zviera c = new Cicavec();&lt;br /&gt;
        Zviera v = new Vtak();&lt;br /&gt;
        Zviera p = new Plaz();&lt;br /&gt;
&lt;br /&gt;
        Set s=new HashSet&amp;lt;Zviera&amp;gt;();&lt;br /&gt;
        boolean prazdna=s.isEmpty();&lt;br /&gt;
        System.out.println(&amp;quot;Mnozina je pradna:&amp;quot; +prazdna);&lt;br /&gt;
        s.add(c);&lt;br /&gt;
        s.add(v);&lt;br /&gt;
        s.add(p);&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;pocet zvierat v mnozine: &amp;quot;+s.size());&lt;br /&gt;
        prazdna=s.isEmpty();&lt;br /&gt;
        System.out.println(&amp;quot;Mnozina je pradna:&amp;quot; +prazdna);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Výstup z programu:&lt;br /&gt;
 Mnozina je pradna:true&lt;br /&gt;
 pocet zvierat v mnozine: 3&lt;br /&gt;
 Mnozina je pradna:false&lt;br /&gt;
==Ukážkový príklad==&lt;br /&gt;
===Rohranie===&lt;br /&gt;
Opäť si zoberme hierarchiu tried Zviera-Cicavec-Pes-Vtak-Plaz. Vytvorme rozhranie ''jeZive''. Toto rozhranie  bude definovať základné metódy týkajúce sa &amp;quot;života&amp;quot; zvieraťa.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public interface jeZive {&lt;br /&gt;
    public void jest(int n);&lt;br /&gt;
    public boolean zije();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nasleduje ukážka mechanizmu dedenia v rozhraniach. Rozhranie jeZdrave bude rozširovať rozhranie jeZive o metódy ''vaha()'' a ''rozmnozovat()''.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public interface jeZdrave extends jeZive{&lt;br /&gt;
    public void rozmnozovat();&lt;br /&gt;
    public int vaha();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Implementácia rozhrania===&lt;br /&gt;
Rozhranie ''jeZdrave'' budeme implementovať v triede Zviera:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public abstract class Zviera implements jeZdrave {&lt;br /&gt;
&lt;br /&gt;
    public String nazov;&lt;br /&gt;
    public int vaha;&lt;br /&gt;
&lt;br /&gt;
    public Zviera() {&lt;br /&gt;
        this(&amp;quot;Zviera&amp;quot;, 0);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public Zviera(String nazov, int vaha) {&lt;br /&gt;
        this.nazov = nazov;&lt;br /&gt;
        this.vaha = vaha;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Zviera: &amp;quot; + this.nazov + &amp;quot;, Vaha: &amp;quot; + this.vaha;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public abstract void pohniSa(int k);&lt;br /&gt;
&lt;br /&gt;
    public int vaha() {  // implementácia metódy z rozhrania jeZdrave&lt;br /&gt;
        return this.vaha;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public boolean zije() {  // implementácia metódy z rozhrania jeZive&lt;br /&gt;
        if (this.vaha &amp;gt; 0) {&lt;br /&gt;
            return true;&lt;br /&gt;
        } else {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Podľa predchádzajúceho textu by sme očakávali, že v triede Zviera je potrebné všetky metódy definované v rozhraní jeZdrave implementovať (teda definovať telá metód). Avšak, trieda Zviera je abstraktná a tak implementácia metód nie je potrebná. &lt;br /&gt;
&lt;br /&gt;
V triede Zviera budeme implementovať len metódu ''zije'' (z rozhrania ''jeZive'') a metódu ''vaha'' (z rozhrania ''jeZdrave''). Metódy ''rozmnozovat()'' a ''jest()'' nebudeme v triede Zviera implementovať. Tieto metódy bude teda potrebné implementovať v triedach Cicavec, Vtak a Plaz.&lt;br /&gt;
&lt;br /&gt;
Poznamenajme, že v triede Zviera je ešte abstraktná metóda ''pohniSa'', ktorú treba v podtriedach taktiež implementovať.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Cicavec extends Zviera {&lt;br /&gt;
&lt;br /&gt;
    public int dlzka_gravidity;&lt;br /&gt;
    public String typ_srsti;&lt;br /&gt;
&lt;br /&gt;
    public Cicavec() {&lt;br /&gt;
        super(&amp;quot;Cicavec&amp;quot;, 1);&lt;br /&gt;
        this.dlzka_gravidity = 7;&lt;br /&gt;
        this.typ_srsti = &amp;quot;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public Cicavec(String nazov, int vaha, int dlzka_gravidity, String typ_srsti) {&lt;br /&gt;
        super(nazov, vaha);&lt;br /&gt;
        this.dlzka_gravidity = dlzka_gravidity;&lt;br /&gt;
        this.typ_srsti = typ_srsti;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void pohniSa(int k) {&lt;br /&gt;
        System.out.println(&amp;quot;bežím &amp;quot; + k + &amp;quot; metrov&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        String g = super.toString();&lt;br /&gt;
        return g + &amp;quot;, Gravidita: &amp;quot; + this.dlzka_gravidity + &amp;quot;, Srst: &amp;quot; + this.typ_srsti;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override  // implementácia metódy rozhrania jeZdrave&lt;br /&gt;
    public void rozmnozovat() {&lt;br /&gt;
        System.out.println(&amp;quot;Cicavec sa rozmnožuje&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override  // implementácia metódy rozhrania jeZive&lt;br /&gt;
    public void jest(int n) {&lt;br /&gt;
        System.out.println(&amp;quot;Plaz prehltol &amp;quot; + n + &amp;quot; cicavcov&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Trieda Vtak:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Vtak extends Zviera {&lt;br /&gt;
    public float rozpatie_kridel;&lt;br /&gt;
    public int pocet_vajec;&lt;br /&gt;
&lt;br /&gt;
    public Vtak()&lt;br /&gt;
    {&lt;br /&gt;
        super(&amp;quot;Vtak&amp;quot;,3);&lt;br /&gt;
        this.rozpatie_kridel = 0;&lt;br /&gt;
        this.pocet_vajec = 8;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public Vtak(String nazov, int vaha, float rozpatie_kridel, int pocet_vajec) {&lt;br /&gt;
        super(nazov,vaha);&lt;br /&gt;
        this.rozpatie_kridel = rozpatie_kridel;&lt;br /&gt;
        this.pocet_vajec = pocet_vajec;&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
   public void spievaj(){&lt;br /&gt;
      System.out.println(&amp;quot;Snažím sa spevať&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
    @Override  // implementácia abstaktnej metódy triedy Zviera&lt;br /&gt;
    public void pohniSa(int k) {&lt;br /&gt;
        System.out.println(&amp;quot;letim &amp;quot;+k+&amp;quot; metrov&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override  // implementácia metódy rozhrania jeZdrave&lt;br /&gt;
    public void rozmnozovat() {&lt;br /&gt;
        System.out.println(&amp;quot;Vtak sa rozmnožuje kladenim vajec&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override  // implementácia metódy rozhrania jeZive&lt;br /&gt;
    public void jest(int n) {&lt;br /&gt;
          System.out.println(&amp;quot;Vtak vyzobal &amp;quot;+n+&amp;quot; kg zrna&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
A trieda Plaz:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Plaz extends Zviera {&lt;br /&gt;
&lt;br /&gt;
    public float dlzka;&lt;br /&gt;
    public String typ;&lt;br /&gt;
&lt;br /&gt;
    public Plaz(String nazov, int vaha, float dlzka, String typ) {&lt;br /&gt;
        super(nazov, vaha);&lt;br /&gt;
        this.dlzka = dlzka;&lt;br /&gt;
        this.typ = typ;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public Plaz() {&lt;br /&gt;
        super(&amp;quot;Plaz&amp;quot;, 2);&lt;br /&gt;
        this.dlzka = 10;&lt;br /&gt;
        this.typ = &amp;quot;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void pohniSa(int k) {&lt;br /&gt;
        System.out.println(&amp;quot;plazím sa &amp;quot; + k + &amp;quot; metrov&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Plaz&amp;quot; + this.dlzka + &amp;quot; &amp;quot; + this.typ;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override  // implementácia metódy rozhrania jeZdrave&lt;br /&gt;
    public void rozmnozovat() {&lt;br /&gt;
        System.out.println(&amp;quot;Plaz sa rozmnožuje&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override  // implementácia metódy rozhrania jeZive&lt;br /&gt;
    public void jest(int n) {&lt;br /&gt;
        System.out.println(&amp;quot;Plaz prehltol &amp;quot; + n + &amp;quot; cicavcov&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Testovanie vytvorených tried===&lt;br /&gt;
Pre overenie správnosti napísaných tried si vytvorme triedu, kde si overíme funkčnosť našich rozhraní:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class testZOO {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        //Zviera z=new Zviera();&lt;br /&gt;
        Zviera c = new Cicavec();&lt;br /&gt;
        Zviera v = new Vtak();&lt;br /&gt;
        Zviera p = new Plaz();&lt;br /&gt;
&lt;br /&gt;
        c.pohniSa(2);&lt;br /&gt;
        v.pohniSa(2);&lt;br /&gt;
        p.pohniSa(2);&lt;br /&gt;
&lt;br /&gt;
        c.jest(2);&lt;br /&gt;
        v.jest(4);&lt;br /&gt;
        p.jest(4);&lt;br /&gt;
&lt;br /&gt;
        c.rozmnozovat();&lt;br /&gt;
        v.rozmnozovat();&lt;br /&gt;
        p.rozmnozovat();&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Výstup z tohoto programu je nasledovný:&lt;br /&gt;
 bežím 2 metrov&lt;br /&gt;
 letim 2 metrov&lt;br /&gt;
 plazím sa 2 metrov&lt;br /&gt;
 Plaz prehltol 2 cicavcov&lt;br /&gt;
 Vtak vyzobal 4 kg zrna&lt;br /&gt;
 Plaz prehltol 4 cicavcov&lt;br /&gt;
 Cicavec sa rozmnožuje&lt;br /&gt;
 Vtak sa rozmnožuje kladenim vajec&lt;br /&gt;
 Plaz sa rozmnožuje&lt;br /&gt;
&lt;br /&gt;
==Porovnanie abstraktných tried a rozhraní==&lt;br /&gt;
Kedy použiť rozhranie a kedy abstraktnú triedu?&lt;br /&gt;
;Použitie rozhrania: V rozhraní definujeme metódy, ktoré do istej miery spolu v určitej oblasti súvisia. Toto rozhranie môžeme použiť vo viacerých triedach, ktoré nemusia mať nič spoločné. Napríklad rozhranie jeZdrave môžeme implementovať v triede Zviera, ale aj v triede Rastlina.&lt;br /&gt;
;Použitie abstraktnej metódy: Pri použití abstraktnej triedy sa predpokladá určitý vzťah medzi triedami (Zviera-Cicavec-Pes). Pre triedy Zviera a Rastlina vy sme museli vytvoriť nejakú abstraktnú triedu, ktorá by definovala spoločné vlastnosti zvieraťa aj rastliny.&lt;br /&gt;
&lt;br /&gt;
Hlavné rozdiely medzi abstraktnou triedou a rozhraním sú opísané v nasledujúcej tabuľke&amp;lt;ref&amp;gt;interface vs abstract class - http://mindprod.com/jgloss/interfacevsabstract.html&amp;lt;/ref&amp;gt;:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Porovnanie rozhrania a abstraktnej triedy&lt;br /&gt;
|-&lt;br /&gt;
!Vlastnosť&lt;br /&gt;
!Rozhranie&lt;br /&gt;
!Abstraktná trieda&lt;br /&gt;
|-&lt;br /&gt;
!Viacnásobná dedičnosť&lt;br /&gt;
|Trieda môže implementovať niekoľko rozhraní&lt;br /&gt;
|Trieda môže rozšíriť iba jednu abstraktnú triedu&lt;br /&gt;
|-&lt;br /&gt;
!implicitná implementácia&lt;br /&gt;
|Rozhranie nemôže obsahovať kód implementácie&lt;br /&gt;
|Abstraktná trieda môže obsahovať určitú časť implementácie.&lt;br /&gt;
|-&lt;br /&gt;
!Konštanty&lt;br /&gt;
|Môže obsahovať len statické konštanty (static final). Použitie konštánt v rozhraniach avšak nie je bežné.&lt;br /&gt;
|Môže obsahovať tak ako konštanty aj vlastnosti (inštančné premenné)&lt;br /&gt;
|-&lt;br /&gt;
!Použitie v triedach tretích strán&lt;br /&gt;
|Implementácia rozhrania môže byť jednoducho pridaná do tried tretích strán&lt;br /&gt;
|Triedy tretích strán musia byť prepísané tak, aby boli potomkami len jednej abstraktnej triedy.&lt;br /&gt;
|-&lt;br /&gt;
!Rýchlosť&lt;br /&gt;
|Pomalá, resp. pomalšia. Pri spúšťaní potrebuje nájsť korešpondujúcu metódu v aktuálnej triedy. &lt;br /&gt;
|Rýchla, resp. rýchlejšia.&lt;br /&gt;
|-&lt;br /&gt;
!Pridanie funkcionality&lt;br /&gt;
|Ak sa do rozhrania pridá nová metóda, táto sa musí implementovať v každej triede s týmto rozhraním.&lt;br /&gt;
|Ak sa do abstraktnej triedy pridá nová metóda, tejto metóde môžeme definovať telo v abstraktnej triede (triedy potomkov budú bez zmeny) alebo sa bude musieť metóda implementovať v triede potomka. &lt;br /&gt;
|}&lt;br /&gt;
==Zdroje a odkazy==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Juraj</name></author>
		
	</entry>
</feed>