Конструктори в abstract клас


0

Преглеждах разни домашни и нещо се обърках малко,

Нали абстрактния клас не може да има инстанции, защо колегите им пишат конструктори тогава?

Така ли е правилно!?...




Отговори



2
Конструкторите на абстрактните класове се използват, за преизползване на логика. Без значение, че има конструктор класът не може да се инстанцира, но този конструктор се вика от наследниците. Всъщност идеята на абстрактния клас е до голяма степен в това. Вероятно е добра идея да се направил protected, за да се избегне объркването.

от StoikoNeykov (2621 точки)


3

Да абстрактен клас не може да има инстанции но неговите наследници могат.

Например имаш абстрактен клас Person, който има Name и Age, които ги set-ваш през конструктора

Например има клас Teacher и Student и няма нужда да сетваш името и годините на Teacher и Student а можеш директно да ги вземеш като параметър от конструктора на Teacher и Student и да ги подадеш на конструктора на Person и той да ги сетва и така спестяваш редове код които иначе ще ги повтаряш и можеш да сбъркаш нещо :)


от Merhatt (1406 точки)


1
Само да вметна, разликата между interface-a и abstract class е в това, че abstract class може да има базова имплементация на конструктора. Ако можеш да си отвориш тазгодишния Q/A session  по OOP, там дават доста подробен отговор на въпроса ти.

от nerazzul (325 точки)


0
Дай линк да не го търся моля те...

от markovood (374 точки)

2

Част 1: ЦЪК

Част 2: ЦЪК


от Merhatt (1406 точки)