Сегодня мы поговорим о Mootools и наследовании.

Иногда мы хотим инкапсулировать какой-то фрагмент кода в классе, чтобы использовать его в нескольких классах. Есть два способа использовать код класса в другом классе: расширить класс или реализовать его.

Первый способ — использовать свойство «Extends». С этим свойством методы с тем же именем, что и у класса расширения, будут иметь свойство parent, используемое для вызова метода суперкласса. Вы можете переопределить методы или добавить к ним новое поведение.

Например, у нас есть следующий класс:

Теперь мы хотим использовать этот класс, но methodA для нас неполный. Мы собираемся создать новый класс B и переопределить methodA, чтобы добавить это новое поведение:

Теперь у нас есть класс, который использует метод в суперклассе и добавляет к нему новое поведение.

Одна мысль, которую вы должны знать, это то, что вы можете расширить только один класс.

Другой способ добавить новое поведение в класс — реализовать другие классы. Для этого мы используем свойство «Implements». Это свойство представляет собой массив других классов. Все свойства, содержащиеся в классах, будут скопированы в новый класс.

Следуя предыдущему примеру, мы создаем класс, который реализует B и использует methodB в своих собственных методах:

Вы можете использовать methodB, но вы можете переопределить его.

Вы можете реализовать несколько классов вместо одного, если используете ‘Extends’.

Эти два свойства могут быть объединены, если вам нужно. В следующем коде у нас есть класс E, который расширяет A и реализует D. Он может переопределять методы для A, но не для D:

Возобновить

Если вам нужно расширить класс, вы должны использовать свойство «Extends». Это свойство ВСЕГДА расположено в начале объявления подкласса. Это будет первая декларация.

Если вам нужно реализовать другие классы, вы должны использовать свойство «Implements». Это свойство ВСЕГДА расположено после объявления «Extends», если оно существует.

После этих свойств мы вводим остальную часть кода нового класса.