I Java: Vad är skillnaden mellan slutklass och (abstrakt klass utan abstrakta metoder)?


Svar 1:

TLDR;

En sista klass är som sagt final. Det betyder att det inte kan utvidgas, ingen underklass och dess beteende är slutgiltigt, omodifierbart.

Å andra sidan måste abstrakt klass ärvas. Den definierar det vanliga eller allmänna beteendet hos sina barnklasser. Den underklass definierar sedan det "något" olika beteendet. Men en abstrakt klass utan abstrakt metod har ingen mening eftersom den innebär att den redan definierar den med full beteende. Du kan till och med ta bort nyckelordet abstrakt från klassdeklarationen om ingen metod förklaras som abstrakt.


Svar 2:

Abstrakt klass och abstrakta metoder är oberoende begrepp. Även om en abstrakt klass inte har några abstrakta metoder, gäller fortfarande regler som gäller abstrakt klass.

Abstrakt klass kan fortfarande inte instanseras. En klass måste ärva den abstrakta klassen för att kunna använda någon av dess organ och implementering. Final Class å andra sidan är tänkt att vara instanserad och kan inte förlängas ytterligare.


Svar 3:

Abstrakt klass och abstrakta metoder är oberoende begrepp. Även om en abstrakt klass inte har några abstrakta metoder, gäller fortfarande regler som gäller abstrakt klass.

Abstrakt klass kan fortfarande inte instanseras. En klass måste ärva den abstrakta klassen för att kunna använda någon av dess organ och implementering. Final Class å andra sidan är tänkt att vara instanserad och kan inte förlängas ytterligare.


Svar 4:

Abstrakt klass och abstrakta metoder är oberoende begrepp. Även om en abstrakt klass inte har några abstrakta metoder, gäller fortfarande regler som gäller abstrakt klass.

Abstrakt klass kan fortfarande inte instanseras. En klass måste ärva den abstrakta klassen för att kunna använda någon av dess organ och implementering. Final Class å andra sidan är tänkt att vara instanserad och kan inte förlängas ytterligare.