Size: a a a

2021 June 13

AS

Alex Sin in Laravel Pro
или в чем разница между абстрактным методом и методом интерфейса
источник

DZ

Daniil Zobov in Laravel Pro
чувак, давай сделаем проще

создай класс и интерфейс, и в классе не реализуй один из методов интерфейса. Запусти свой код и пришли сюда ошибку
источник

DZ

Daniil Zobov in Laravel Pro
<?php

interface MyInterface {
   function myMethod();
}

class MyClass implements MyInterface {
   
}

$a = new MyClass;
источник

DZ

Daniil Zobov in Laravel Pro
просто запусти это
источник

AS

Alex Sin in Laravel Pro
источник

DZ

Daniil Zobov in Laravel Pro
и вот второй пример

<?php

abstract class MyParentClass {
   private function myOtherMethod();
}

class MyClass extends MyParentClass {
   
}

$a = new MyClass;
источник

AS

Alex Sin in Laravel Pro
а почему в этом примере ты у приватного метода не прописал слово абстракт
источник

DZ

Daniil Zobov in Laravel Pro
<?php

abstract class MyParentClass {
   abstract protected function myOtherMethod();
}

class MyClass extends MyParentClass {
   
}

$a = new MyClass;
источник

AS

Alex Sin in Laravel Pro
хер ю го
источник

DZ

Daniil Zobov in Laravel Pro
вот так корректно, немного запамятовал
источник

DZ

Daniil Zobov in Laravel Pro
суть в том, что интерфейс описывает ТОЛЬКО публичные методы и константы
источник

AS

Alex Sin in Laravel Pro
источник

DZ

Daniil Zobov in Laravel Pro
абстрактный класс умеет protected и public
источник

АБ

Александр Балыхин... in Laravel Pro
Так то да
источник

AS

Alex Sin in Laravel Pro
да, есть такое
источник

DZ

Daniil Zobov in Laravel Pro
интерфейс по своей природе не может быть абстрактным. Это интерфейс, морда объекта
источник

AS

Alex Sin in Laravel Pro
но в целом, насколько значительно это меняет суть вопроса - сложно сказать
источник

АБ

Александр Балыхин... in Laravel Pro
Быть может сам интерфейс можно назвать абстрактным классом
источник

DZ

Daniil Zobov in Laravel Pro
а абстрактный класс это неполный класс, который не может иметь инстансов
источник

АБ

Александр Балыхин... in Laravel Pro
Если хочется
источник