I Java: Hvad er forskellen mellem slutklasse og (abstrakt klasse uden abstrakte metoder)?


Svar 1:

TLDR;

En sidste klasse er som sagt endelig. Det betyder, at det ikke kan udvides, ingen underklasse, og dets opførsel er endelig, umodificerbar.

På den anden side skal abstrakt klasse arves. Den definerer den almindelige eller generelle adfærd for deres barneklasser. Dens underklasse definerer derefter den "lidt" forskellige adfærd. Imidlertid giver en abstrakt klasse uden abstrakt metode ingen mening, fordi den betyder, at den allerede definerer den med fuld adfærd. Du kan endda fjerne nøgleordet abstrakt fra klassedeklarationen, hvis ingen metode er erklæret som abstrakt.


Svar 2:

Abstrakt klasse og abstrakte metoder er uafhængige begreber. Selv hvis en abstrakt klasse ikke har abstrakte metoder, gælder regler stadig for abstrakt klasse.

Abstrakt klasse kan stadig ikke instantieres. En klasse skal arve den abstrakte klasse for at gøre brug af en hvilken som helst af dens krop og implementering. Endelig klasse på den anden side formodes at være øjeblikkelig og kan ikke forlænges yderligere.


Svar 3:

Abstrakt klasse og abstrakte metoder er uafhængige begreber. Selv hvis en abstrakt klasse ikke har abstrakte metoder, gælder regler stadig for abstrakt klasse.

Abstrakt klasse kan stadig ikke instantieres. En klasse skal arve den abstrakte klasse for at gøre brug af en hvilken som helst af dens krop og implementering. Endelig klasse på den anden side formodes at være øjeblikkelig og kan ikke forlænges yderligere.


Svar 4:

Abstrakt klasse og abstrakte metoder er uafhængige begreber. Selv hvis en abstrakt klasse ikke har abstrakte metoder, gælder regler stadig for abstrakt klasse.

Abstrakt klasse kan stadig ikke instantieres. En klasse skal arve den abstrakte klasse for at gøre brug af en hvilken som helst af dens krop og implementering. Endelig klasse på den anden side formodes at være øjeblikkelig og kan ikke forlænges yderligere.