Итак, в Objective-C у меня есть класс PlayingCardDeck (который содержит массив PlayingCards, который является подклассом Карт), который имеет метод drawRandom (унаследованный от класса Deck), который возвращает случайный объект Card из этого массива.Как получить доступ к методам подкласса, когда он назначен переменной типа суперкласса?
У меня есть результат этого метода drawRandom, присвоенного Card * hello, так как возвращается объект карты, поэтому я не могу присвоить результат PlayingCard * hello.
Если бы я хотел получить доступ к некоторым методам, которые я реализовал в PlayingCards, как бы мне это сделать? Я был вынужден назначить Карту, поэтому я не могу получить доступ к каким-либо методам PlayingCard.
Должен ли я переопределить метод drawRandom в PlayingCardDeck, чтобы вместо него вместо него играть PlayingCard?
Или есть ли другой способ сделать это? (поскольку кажется, что это отходы, чтобы переопределить все мои методы суперкласса ... если я это сделаю, в чем смысл подкласса?)
Я просто что-то пропустил?
Значит, класс проверки и последующий метод метода объекта с обтеканием объекта, который вы описали выше, должны быть выполнены, если у меня есть разные вызовы методов, которые могут возникнуть в результате? Например, имея два подкласса карты Yugioh и Magic Card, которые, возможно, должны вызвать методы [Card trapActivate] vs [Поиск карты]. И в другом случае, о котором вы упомянули в подклассе, была бы ситуация, когда карты Yugioh и Magic были бы названы общим методом [Card activate], где два подкласса имеют другую реализацию. Я правильно понимаю это? – user2503088
Да, у вас это есть. – gaige
Ahhh спасибо! – user2503088