МОЖЕ ЛИ интерфейсът да има неабстрактни методи?
МОЖЕ ЛИ интерфейсът да има неабстрактни методи?

Видео: МОЖЕ ЛИ интерфейсът да има неабстрактни методи?

Видео: МОЖЕ ЛИ интерфейсът да има неабстрактни методи?
Видео: 020 - OOP IEC61131-3 PLC -- 4 Pilares OOP - Abstraccion 2024, Ноември
Anonim

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

Освен това, може ли един интерфейс да има абстрактни методи?

Ан интерфейс е като "чисто" абстрактно клас. Класът и всичко в него методи са абстрактно . Ан абстрактно клас мога да имам изпълнени методи но самият клас не може да бъде инстанциран (полезен за наследяване и следване на DRY). Ако приложите Интерфейс тогава трябва да приложите методи в интерфейс.

Също така, може ли абстрактният клас да има неабстрактни методи? да ние мога да имам ан абстрактен клас без Абстрактни методи тъй като и двете са независими понятия. Деклариране на а абстракт на класа означава, че то мога не се инстанцира самостоятелно и мога да бъде само подклас. Деклариране на а метод абстракт означава, че Метод ще да бъдат дефинирани в подкласа.

Освен това, можем ли да дефинираме методи в интерфейса?

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

Трябва ли да се прилагат всички методи в един интерфейс?

Да, задължително е изпълняват всички на методи в клас, който реализира an интерфейс освен ако и докато този клас не е абстрактен клас. Вие имат два избора: - прилагат всеки метод изисквани от интерфейс или - обявяване на изчезнали методи абстрактни във вашия клас.

Препоръчано: