POATE interfața să aibă metode non-abstracte?
POATE interfața să aibă metode non-abstracte?

Video: POATE interfața să aibă metode non-abstracte?

Video: POATE interfața să aibă metode non-abstracte?
Video: Java Interview Questions #56 - Can an abstract class have both abstract and non-abstract methods? 2024, Decembrie
Anonim

Metode de interfață sunt prin definiţie publice şi abstract , deci nu poți au nu - metode abstracte în dumneavoastră interfață . În Java, metode de interfață sunt publice și abstract în mod implicit. Deci prima opțiune este o practică proastă. Ideea este că tu poate sa a nu folosi non - metode abstracte interior de interfață , pentru ca sunt abstract în mod implicit.

În plus, poate o interfață să aibă metode abstracte?

Un interfață este ca un „pur” abstract clasă. Clasa și toate ei metode sunt abstract . Un abstract clasă poate avea implementate metode dar clasa în sine nu poate fi instanțiată (utilă pentru moștenire și după DRY). Dacă implementați Interfață atunci trebuie să implementați metode în interfață.

De asemenea, poate clasa abstractă să aibă metode non-abstracte? da noi poate avea un clasa abstractă fără Metode abstracte întrucât ambele sunt concepte independente. Declararea a abstract de clasă înseamnă că asta poate sa să nu fie instanțiată de la sine și poate sa fie doar subclasat. Declararea a abstract de metodă înseamnă că Metoda va fi definite în subclasă.

În plus, putem defini metode în interfață?

Ca o clasă, an interfața poate avea metode și variabile, dar metode declarat într-un interfață sunt implicit abstracte (numai metodă semnătură, fără corp). Interfețe specifica ce trebuie o clasă do si nu cum. Dacă o clasă implementează acest lucru interfață , atunci acesta poate sa poate fi folosit pentru a sorta o colecție.

Trebuie implementate toate metodele dintr-o interfață?

Da, este obligatoriu pune în aplicare toate cel metode într-o clasă care implementează an interfață cu excepția cazului în care și până când acea clasă este o clasă abstractă. Tu avea doua variante: - implementează fiecare metodă cerut de interfață sau - declara dispărutul metode rezumat în clasa dvs.

Recomandat: