V jazyce Java: Jaký je rozdíl mezi konečnou třídou a (abstraktní třídou bez abstraktních metod)?


Odpověď 1:

TLDR;

Konečná třída je, jak říká, konečná. To znamená, že ji nelze rozšířit, žádná podtřída a její chování je konečné, nemodifikovatelné.

Na druhou stranu je třeba zdědit abstraktní třídu. Definuje společné nebo obecné chování jeho podřízených tříd. Je to podtřída, která pak definuje „mírně“ odlišné chování. Abstraktní třída bez abstraktní metody však nedává žádný smysl, protože to znamená, že již definuje své plné chování. Abstrakt klíčového slova můžete dokonce odstranit z deklarace třídy, pokud není žádná metoda deklarována jako abstraktní.


Odpověď 2:

Abstraktní třídy a abstraktní metody jsou nezávislé koncepty. I když abstraktní třída nemá abstraktní metody, stále platí pravidla vztahující se na abstraktní třídu.

Abstraktní třídu stále nelze konkretizovat. Třída musí zdědit abstraktní třídu, aby využila libovolného svého těla a implementace. Final Class na druhé straně má být instanční a nelze ji dále rozšiřovat.


Odpověď 3:

Abstraktní třídy a abstraktní metody jsou nezávislé koncepty. I když abstraktní třída nemá abstraktní metody, stále platí pravidla vztahující se na abstraktní třídu.

Abstraktní třídu stále nelze konkretizovat. Třída musí zdědit abstraktní třídu, aby využila libovolného svého těla a implementace. Final Class na druhé straně má být instanční a nelze ji dále rozšiřovat.


Odpověď 4:

Abstraktní třídy a abstraktní metody jsou nezávislé koncepty. I když abstraktní třída nemá abstraktní metody, stále platí pravidla vztahující se na abstraktní třídu.

Abstraktní třídu stále nelze konkretizovat. Třída musí zdědit abstraktní třídu, aby využila libovolného svého těla a implementace. Final Class na druhé straně má být instanční a nelze ji dále rozšiřovat.