muzruno.com

Елементи на обектния модел на Java: абстрактен клас, интерфейс

Основната идея на абстрактния клас се крие в следната теза: понякога не са необходими готови класове, а в "сурова" форма. Такива заготовки не могат да се използват директно (създават се случаи).java абстрактен клас

Какво представлява абстрактният клас в Java?

Нека разгледаме друг пример. В Java има абстрактен клас Календар в пакета Java.util. Тя не се изпълни определено календар, който се използва, например, в Западна и Източна Европа, Китай, Северна Корея, Тайланд и т.н., но има много полезни функции, като например добавяне на няколко дни до конкретна дата: .. са необходими Тези функции за всеки изпълнението на календара. Не можете да заредите инстанция от абстрактен клас.

Обобщени класове, Java абстрактни методи

Да предположим, че искате да се развива на няколко графични елементи, например, геометрични фигури: .. кръг, правоъгълник, звезда и т.н. И там е контейнер, който ги привлича. Всеки компонент на външния вид е различен, така че най-подходящия метод (дори ако той се нарича боя) се осъществява по различен начин. Въпреки това, всеки компонент има много прилики: .. Цифрата трябва да бъдат включени в кутията може да има цвят, за да бъде видимо и невидимо, и т.н. С други думи, трябва да се създаде клас майка за всички тези фигури, където всеки компонент ще наследят общите свойства.абстрактни класове абстрактни методи java Но какво ще кажете за метода на боята? В края на краищата родителската класа няма визуално представяне. Ако обявите метода на боята във всеки клас самостоятелно, ще трябва да анализирате кой компонент се обработва и след това да се изхвърли типът. Следователно, методът трябва да бъде обявен абстрактно в родителския клас: задайте заглавката на метода без тялото. И всеки получен клас ще опише тялото си. В Java абстрактен клас могат да сключат абстрактни методи.

Ако даден клас има абстрактни методи, тогава класата е абстрактна. Преди класовата дума да бъде поставена абстрактната дума, в заглавието на метода - също. След главата на този метод, трябва да поставите точка и запетая. В Java, абстрактният клас не може да създаде случаи. Ако искаме да забраним тяхното създаване, дори ако класът няма абстрактни методи, тогава класата може да бъде обявена за абстрактна. Но ако даден клас има поне един абстрактен метод, тогава класата трябва да бъде абстрактна. Невъзможно е класът да бъде абстрактен, окончателен и метод. Методът не може да бъде абстрактен, частен, статичен, местен. За да бъдат класите на наследниците да бъдат обявени за не-абстрактни и да създават своите инстанции, те трябва да прилагат всички абстрактни методи на родителя. Самият клас може да използва своите абстрактни методи.

например:

  • абстрактен клас AClass {
  • публичен абстрактен празен метод (int a) -
  • }
  • клас BClass разширява AClass {
  • публичен празен метод (int a) {
  • // тялото
  • }

Променливите на абстрактния тип класове са разрешени. Те могат да се позовават на не-абстрактния потомък на този клас или да бъдат нищожни.

Интерфейси в Java - алтернатива на множественото наследяване

интерфейси и абстрактни класове в Java

Java няма много наследство, защото има известни проблеми. Един клас не може да наследява от няколко класа. Но може да реализира няколко интерфейса.



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

Декларация за интерфейса

разликата между абстрактния клас и интерфейса на Java

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

  • публичният интерфейс AI разширява B, C, D {
  • // тялото
  • }

За да декларирате клас като наследник на интерфейса, трябва да използвате ключовите думи:

  • клас AClass изпълнява BI, CI, DI {}

Тоест, ако името на интерфейса е посочено в декларацията на класа след изпълнение, тогава класата го изпълнява. Наследниците от този клас наследяват елементите си, така че и те да го прилагат.

Променливите на типа интерфейс също са разрешени. Те могат да се отнасят до типа на класа, който изпълнява този интерфейс, или null. Такива променливи имат всички елементи на класа Object, защото обектите се генерират от класове, а тези от своя страна са наследени от класа Object.

В тази статия разгледахме някои елементи от Java обектния модел - абстрактни класове, абстрактни методи, интерфейси.

Споделяне в социалните мрежи:

сроден