На Java: у чым розніца паміж канчатковым класам і (абстрактным класам без абстрактных метадаў)?


адказ 1:

TLDR;

Старэйшы год, як кажуць, канчатковы. Гэта азначае, што ён не можа быць пашыраны, няма падкласа, і яго паводзіны канчатковае, нязменнае.

З іншага боку, абстрактны клас павінен перадавацца па спадчыне. Ён вызначае агульнае ці агульнае паводзіны яго падначаленых класаў. Затым ваш падклас вызначае "крыху" розныя паводзіны. Аднак абстрактны клас без абстрактнага метаду не мае сэнсу, бо ён ужо вызначае поўнае паводзіны. Вы нават можаце выдаліць абстрактнае ключавое слова з дэкларацыі класа, калі метад не аб'яўляецца абстрактным.


адказ 2:

Абстрактны клас і абстрактныя метады - незалежныя паняцці. Нават калі абстрактны клас не мае абстрактных метадаў, правілы, якія прымяняюцца да абстрактнага класа, усё яшчэ дзейнічаюць.

Абстрактны клас па-ранейшаму нельга стварыць. Клас павінен успадкаваць абстрактны клас, каб выкарыстоўваць яго цела і яго рэалізацыю. Апошні клас, з іншага боку, павінен быць экзэмплярам і не можа пашырацца далей.


адказ 3:

Абстрактны клас і абстрактныя метады - незалежныя паняцці. Нават калі абстрактны клас не мае абстрактных метадаў, правілы, якія прымяняюцца да абстрактнага класа, усё яшчэ дзейнічаюць.

Абстрактны клас па-ранейшаму нельга стварыць. Клас павінен успадкаваць абстрактны клас, каб выкарыстоўваць яго цела і яго рэалізацыю. Апошні клас, з іншага боку, павінен быць экзэмплярам і не можа пашырацца далей.


адказ 4:

Абстрактны клас і абстрактныя метады - незалежныя паняцці. Нават калі абстрактны клас не мае абстрактных метадаў, правілы, якія прымяняюцца да абстрактнага класа, усё яшчэ дзейнічаюць.

Абстрактны клас па-ранейшаму нельга стварыць. Клас павінен успадкаваць абстрактны клас, каб выкарыстоўваць яго цела і яго рэалізацыю. Апошні клас, з іншага боку, павінен быць экзэмплярам і не можа пашырацца далей.