
Srovnávací grafy
Základ pro porovnání | Rozšiřuje | Nástroje |
---|---|---|
Základní | Klíčové slovo extend se používá k vytvoření podtřídy pomocí funkcí super třídy. | Klíčové slovo implementace se používá pro implementaci rozhraní |
Metody | Klíčové slovo rozšiřování nemusí přepsat všechny metody třídy super. | Klíčové slovo implements musí implementovat všechny metody implementovaného rozhraní. |
Třída | Třída může rozšířit pouze jednu super třídu. | Třída může implementovat více interafaces. |
Rozhraní | Rozhraní může rozšířit více než jedno rozhraní. | Rozhraní nemůže implementovat jiné rozhraní. |
Definice rozšířeného klíčového slova
Dědičnost, která je důležitým konceptem v objektově orientovaném programování, je dosažena, když podtřída rozšiřuje další nadtřídu. Podtřída může rozšířit pouze jednu nadtřídu. Třída nemůže nikdy rozšířit více než jednu super třídu v Javě. Pokud třída rozšíří jinou třídu, může přepsat metody definované v nadtřídě. Pojďme pochopit klíčové slovo rozšiřuje s pomocí příkladu.
třída A {String s; A (řetězec s1) {s = s1; } // zobrazit řetězec void display () {System.out.println (+ s); }} třída B rozšiřuje A {String i; B (řetězec s1, řetězec i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * display () vyvolané třídy A. * / System.out.println (+ i); }} třída Override {public static void main (String args []) {B ob = new B (Tech, rozdíly); ob.display (); / * zobrazení třídy B vyvolané * /}} / * out put * / Tech Differences
Ve výše uvedeném kódu můžete pozorovat, že třída B rozšířila třídu A a přepsala zobrazení metody () definované ve třídě A. Podobným způsobem může rozhraní současně rozšířit více než jedno rozhraní. Vzhledem k tomu, že rozhraní nemusí implementovat žádnou metodu rozšířeného rozhraní, je povoleno zdědit více rozhraní najednou.
Definice klíčového slova implementace
Pomocí implementace klíčových slov třída zdědí všechny metody v rozhraní. Pokud třída implementuje rozhraní, musí tato třída implementovat všechny metody implementovaného rozhraní. Rozhraní nikdy nemůže implementovat jiné rozhraní, protože implementační klíčová slova slibují implementaci metod, ale rozhraní v něm nikdy neimplementuje metody, takže není možné, aby rozhraní implementovalo jiné rozhraní. Pojďme pochopit implementační klíčové slovo pomocí příkladu.
rozhraní řetězce {void display (String s); } rozhraní integer {void show (int i); } třída Demo implementuje řetězce, integer {void show (int i) {System.Out.Println ("celočíselná hodnota:" + i); } void display (String s) {System.Out.Println ("hodnota řetězce:" + s); }} třída Demo_main {public static void main (řetězec args []) {Demo d = new Demo (); d.display ("TechDifferences"); d.show (2); }} / * output * / TechDifferences 2
Stejně jako ve výše uvedeném kódu můžete vidět, že demo třídy implementuje dva řetězce rozhraní a celé číslo a implementovalo metody deklarované v obou rozhraních, které jsou display () a show ().
Klíčové rozdíly Mezi rozšiřuje a implementuje
- Třída může zdědit jinou třídu, nebo rozhraní zdědí jiná rozhraní pomocí klíčového slova, zatímco třída může implementovat rozhraní pomocí implementačního klíčového slova.
- Podtřída, která rozšiřuje nadtřídu, může nebo nemusí přepsat všechny metody v nadtřídě. Na druhou stranu třída implementující rozhraní musí definovat / implementovat všechny metody tohoto rozhraní.
- Třída může současně implementovat libovolné číslo rozhraní. Na druhou stranu může třída rozšířit pouze jednu super třídu.
- Rozhraní může rozšířit libovolný počet rozhraní, ale rozhraní nemůže nikdy implementovat žádné jiné rozhraní, protože implementační prostředky definující metody a rozhraní mají vždy abstraktní metody, takže rozhraní nemůže nikdy implementovat jiné rozhraní.
Závěr:
Závěrem rozpravy říkám, že implementace rozhraní činí kód flexibilnějším než rozšíření třídy. Jak se vyhne omezení zdědit jen jednu super třídu v Javě. Pomocí klíčového slova implements může třída zdědit funkce více než jednoho rozhraní.