Implement interface in abstract class

Ако абстрактен клас имплементира интерфейс, той няма нужда да имплементира дори и един от методите на интерфейса.

В реалният клас, който екстендва абстрактния, ти така или иначе ще трябва да имплементираш този метод.

Например:

interface iIiii
{
     public function patapan();
}

abstract class cClasss implements iIiii
{
}

Това няма да гръмне въпреки, че не сме имплементирали patapan().

Защо?

Аз си го обяснявам така:
По принцип има препокриване между самите понятия „интерфейс“ и „абстрактен клас“, демек – абстрактен клас е все едно, на практика интерфейс, на който някои от методите са имплементирани (т.е. дефинирани).

Затова, когато абстрактен клас имплементира интерфейс, няма нужда да да дефинира методите му (на интерфейса). Защото те така или иначе са абстрактни. Интерфейс методите всичките са абстрактни.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *