2013-06-17 2 views
0

Я хочу знать, когда я должен отметить мой класс как окончательный?Php, когда использовать последний класс

И если нет, я могу продлить окончательный класс?

Я использую ipinfodb api и его последний класс, который я хочу использовать в своем обычном классе.

ответ

4

Используйте composition вместо наследования. Вся исключительная цель классов final заключается в том, что вы не должны унаследовать их. Вам нужно создать класс, который просто использует экземпляр класса final внутри.

0

вы не можете продлить окончательный класс. Расширение означает наследование. Что означает «включить последний класс в мой класс»?

Вы можете сделать свой собственный класс, а затем в этом классе создать элемент вашего выпускного класса var m_yourFinalClassObj = new MyFinalClass;

Или просто объявить:

 class MyClass 
    { 
     var m_yourFinalClassObj; 
     ... 

... и в конструкторе идти и инициализация (создать объект окончательного класса)

0

Итоговый класс - это не что иное, как последний класс. Это означает, что вы просто не можете создать дочерний класс конечного класса (поддержка наследования не поддерживается). Вы также не можете переопределять свои методы. Но вы действительно можете включить его и использовать в других классах.

+0

Вот в чем проблема: я включаю его в свой класс, и он продолжает говорить, что он не может найти мой класс, хотя я проверял его снова и снова. –

+0

Позвольте мне посмотреть ваш код. Мне нужно увидеть эти 2 класса и как они расположены в дереве проекта. – Ronen

0

окончательный класс такой же, как закрытый класс в C#, что означает, что он запечатан, он еще больше не унаследован другим классом, однако используйте этот класс, создав его объект в другом классе.