Java keeles: Mis vahe on lõpuklassil (abstraktsel klassil, millel pole abstraktseid meetodeid)?


Vastus 1:

TLDR;

Lõpuklass on, nagu öeldakse, lõplik. See tähendab, et seda ei saa laiendada, alaklassi pole ja käitumine on lõplik, muutmatu.

Teisalt tuleb abstraktne klass pärida. See määratleb oma lasteklasside tavapärase või üldise käitumise. Alamklass määratleb siis "pisut" erineva käitumise. Kuid abstraktse meetodita abstraktsel klassil pole mingit mõtet, sest see tähendab, et see juba määratleb selle täieliku käitumise. Võite isegi klassideklaratsioonist eemaldada märksõna abstraktne, kui ühtegi meetodit ei deklareerita abstraktseks.


Vastus 2:

Abstraktne klass ja abstraktsed meetodid on iseseisvad mõisted. Isegi kui abstraktsel klassil puuduvad abstraktsed meetodid, kehtivad ikkagi abstraktse klassi suhtes kehtivad reeglid.

Abstraktset klassi ei saa endiselt kiirendada. Klass peab pälvima abstraktse klassi, et kasutada oma keha ja teostust. Lõppklass seevastu peaks olema hetkeline ja seda ei saa enam pikendada.


Vastus 3:

Abstraktne klass ja abstraktsed meetodid on iseseisvad mõisted. Isegi kui abstraktsel klassil puuduvad abstraktsed meetodid, kehtivad ikkagi abstraktse klassi suhtes kehtivad reeglid.

Abstraktset klassi ei saa endiselt kiirendada. Klass peab pälvima abstraktse klassi, et kasutada oma keha ja teostust. Lõppklass seevastu peaks olema hetkeline ja seda ei saa enam pikendada.


Vastus 4:

Abstraktne klass ja abstraktsed meetodid on iseseisvad mõisted. Isegi kui abstraktsel klassil puuduvad abstraktsed meetodid, kehtivad ikkagi abstraktse klassi suhtes kehtivad reeglid.

Abstraktset klassi ei saa endiselt kiirendada. Klass peab pälvima abstraktse klassi, et kasutada oma keha ja teostust. Lõppklass seevastu peaks olema hetkeline ja seda ei saa enam pikendada.