Цитата:
интерфейсы или наследование классов.
тут немного поясню что есть что.
Наследование я уже пояснял на примере Actor>автомобиль>Грузовик
Каждый потомок наследует свойства и методы предка, плюс добавляет (или нет) свои.
Это фундамент, который просто нужно понять, иначе беда ))
Но бывают случаи, когда наследственность не помогает, например.
У вас Два класса:
1. Сундук - наследник Actor класса
2. Персонаж - наследник Character класса.
У них есть общий предок - Actor, но к нему не подобраться если вы хотите сделать инвентарь, например.
У Вас у сундука и Персонажа есть инвентарь, и Вот вы хотите узнать что в инвентаре сундука или перса.
Первое - неразумное решение - проверить сундук это или Перс и по разному получить доступ к инвентарю.
И если у вас еще авто с сундуком, то это еще один каст и так далее.
Тут приходит на помощь Интерфейс - набор методов, которые как бы добавляются к основным методам класса.
И вот мы имеем Интерфейс с методами
1. AddInventory(Item)
2.GetInventory(Item)
и цепляем интерфейс к каждому из классов (сундуку и персу).
И они теперь имеют общий функционал, к которому можно обратиться по касту интерфейса, типа
Код:
Cast<Интерфейс>(Сундук)->AddInventory(Item);
Cast<Интерфейс>(Сундук)->GetInventory(Item);
или
Код:
Cast<Интерфейс>(Персонаж)->AddInventory(Item);
Cast<Интерфейс>(Персонаж)->GetInventory(Item);
Как видим - интерфейс весьма серьезно расширяет возможности. Это почти как второе наследование.
_________________
Если вас обосрали, потерпите... Скоро оно само отсохнет и отпадет...
Skype: ogasoda
Мой канал на YouTubeПоследний раз редактировалось
Роман Потапов 06 окт 2015, 16:48, всего редактировалось 2 раз(а).