Препоръчано, 2021

Избор На Редактора

Разлика между разширява и изпълнява ключови думи в Java

Ключовите думи, които се разширяват и изпълняват, се използват за наследяване на характеристиките на вече съществуващ родителски блок в новосъздадения детски блок. С помощта на ключова дума extends новосъздаден клас (подклас) може да наследи характеристиките на съществуващ клас (суперклас). Използването на ключови думи за внедряване на новосъздаден клас може да реализира всички методи на интерфейс. Основната разлика между ключовите думи, които се разширява и реализира, е, че един клас разширява друг клас, за да наследи всички негови членове, докато класът изпълнява интерфейс, за да наследи всички негови методи и да ги приложи според изискванията си. Има някои други различия между ключовите думи, които се разширяват и изпълняват, обсъдени в таблица за сравнение, показана по-долу.

Сравнителни таблици

Основа за сравнениеРазширяваРеализира
ОсновенКлючовата дума extends се използва за създаване на подклас, използващ функции на суперклас.Ключовата дума реализира се използва за изпълнение на интерфейс
методиКлючовата дума extends не може да замени всички методи на суперклас.Ключовата дума „внедрява“ трябва да приложи всички методи на приложен интерфейс.
класЕдин клас може да разшири само един супер клас.Един клас може да реализира множество интерфейси.
интерфейсЕдин интерфейс може да разшири повече от един интерфейс.Един интерфейс не може да реализира друг интерфейс.

Дефиниция на ключова дума extends

Наследството е важна концепция в обектно-ориентираното програмиране, когато подкласът разширява друг суперклас. На подклас е позволено да разшири само един суперклас. Клас никога не може да разшири повече от една суперклас в Java. Когато един клас разширява друг клас, той може да замени методите, дефинирани в суперкласа. Позволете ни да разберем, че ключова дума се разширява с помощта на пример.

 клас A {String s; A (String s1) {s = s1; } // покажи низ void display () {System.out.println (+ s); }} клас В разширява A {String i; B (String s1, String i1) {супер (s1); i = i1; } void dispaly () {super.dispaly (); / * display () от клас A, извикан. * / System.out.println (+ i); }} Клас Override {публичен статичен невалиден main (String args []) {B ob = new B (Tech, Differences); ob.display (); / * показване на клас B, извикано * /}} / * out поставяне * / Tech Differences 

В горния код можете да забележите, че клас B е разширен клас А и е заменил метода display (), дефиниран в клас А. По подобен начин интерфейс може да разшири повече от един интерфейс в даден момент. Тъй като интерфейсът не трябва да изпълнява какъвто и да е метод на разширения интерфейс, следователно е позволено да се наследят няколко интерфейса едновременно.

Дефиниция на ключова дума за инструменти

Използвайки ключовата дума, класът наследява всички методи в интерфейса. Когато един клас реализира интерфейс, този клас трябва да реализира всички методи на реализирания интерфейс. Един интерфейс никога не може да приложи друг интерфейс, тъй като реализира ключова дума обещава прилагането на методите, но интерфейсът никога не прилага методи в него, така че е невъзможно за един интерфейс да реализира друг интерфейс. Нека разберем реализира ключова дума с помощта на пример.

 интерфейсни низове {void display (String s); } integer integer {void show (int i); } клас Демо изпълнява низове, цяло число {void show (int i) {System.Out.Println ("цяло число:" + i); } void display (String s) {System.Out.Println ("стойност на низ:" + s); }} клас Demo_main {публичен статичен void main (string args []) {Demo d = new Demo (); d.display ( "TechDifferences"); d.show (2); }} / * изход * / TechDifferences 2 

Както и в горния код, можете да видите, че демонстрацията на класа реализира две интерфейсни низове и цяло число и е реализирала методите, декларирани в двата интерфейса, които са display () и show ().

Ключови разлики между удълженията и оръдията

  1. Един клас може да наследи друг клас или интерфейсът наследява други интерфейси, използвайки ключова дума, която се разширява, докато класът може да реализира интерфейси, използвайки ключова дума.
  2. Подклас, който разширява суперклас, може или не може да отмени всички методи в суперклас. От друга страна, клас, изпълняващ интерфейс, трябва да дефинира / прилага всички методи на този интерфейс.
  3. Един клас може да реализира произволен брой интерфейси едновременно. От друга страна, един клас може да разшири само един супер клас.
  4. Един интерфейс може да разшири произволен брой интерфейси, но интерфейсът никога не може да приложи друг интерфейс, тъй като средствата за изпълнение, определящи методите и интерфейса, винаги имат абстрактни методи, така че интерфейсът никога не може да реализира друг интерфейс.

Заключение:

В заключение обсъждам, че прилагането на интерфейс прави кода по-гъвкав от разширяването на клас. Тъй като избягва ограничаването на наследяването само на една суперклас в Java. Използването на ключови думи за внедряване на клас може да наследи функции на повече от един интерфейс.

Top