Doporučená, 2021

Redakce Choice

Rozdíl mezi rozšiřuje a implementuje klíčová slova v Javě

Klíčová slova se rozšiřují a nástroje se používají k tomu, aby zdědily funkce již existujícího nadřazeného bloku v nově vytvořeném podřízeném bloku. Pomocí rozšířeného klíčového slova může nově vytvořená třída (podtřída) zdědit vlastnosti existující třídy (nadtřídy). Pomocí klíčového slova implementace může nově vytvořená třída implementovat všechny metody rozhraní. Primární rozdíl mezi klíčovými slovy rozšiřuje a implementuje je, že třída rozšiřuje další třídu, aby zdědila všechny své členy, zatímco třída implementuje rozhraní, aby zdědila všechny metody a implementovala je podle svého požadavku. Tam jsou některé jiné rozdíly mezi klíčovými slovy se rozšíří a implementuje diskutoval v tabulce srovnání ukázaný dole.

Srovnávací grafy

Základ pro porovnáníRozšiřujeNá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í
MetodyKlíč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řídaTří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

  1. 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.
  2. 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í.
  3. Třída může současně implementovat libovolné číslo rozhraní. Na druhou stranu může třída rozšířit pouze jednu super třídu.
  4. 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í.

Top