Як успадкувати модуль у Ruby?
2024Насправді неможливо успадкувати одиночний клас модуля. Якби ми хотіли пояснити те, що тут відбувається, одиночні класи модулів остаточні. Вони не можуть бути успадковані. Це означає, що члени модуля ніколи не успадковуються, тому якщо у вас є це self.
Інструкція Ruby include просто робить посилання на названий модуль. Якщо цей модуль знаходиться в окремому файлі, ви повинні використовувати вимогу, щоб перетягнути цей файл перед використанням include .
Створення модулів у Ruby Щоб визначити модуль, використовуйте ключове слово module, дайте йому ім’я, а потім закінчіть кінцем . Назва модуля відповідає тим же правилам, що й назва класу. Ім'я є постійним і має починатися з великої літери. Якщо модуль складається з двох слів, це має бути верблюжий регістр (наприклад, MyModule).
Як успадкувати клас у Ruby? Ruby підтримує успадкування одного класу, тому клас може успадковувати лише інший клас; він не може успадкувати від двох суперкласів.
У Ruby модулі дещо схожі на класи: вони містять методи, як і класи. однак, модулі не можуть бути створені. Тобто неможливо створювати об’єкти з модуля. А модулі, на відміну від класів, тому не мають методу new .
Фактично, Ruby полегшує використання композиції за допомогою засобу mixin. Дійсно, модуль можна включити в інший модуль або клас за допомогою ключових слів include, prepend і extend.