Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инкапсуляция, наследование + полиморфизм 
V
    Опции темы
blackwitcher
Дата 18.5.2015, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



Create next classes: Cat, Dog and Petshop.  
Types Cat and Dog have fields Name and Breed and method Introduce() which prints text “I’m (Name) of  (Breed). I’m a cat (or dog)”.  
The class Petshop collects in its container different pets.  
We may add new pet to container by method AddPet() and we may display information about all pets by method IntroduceAll(). 


P.S.: сам сделал, но не так как хотелось бы

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  new__2.cs 1,73 Kb
PM MAIL   Вверх
infarch
Дата 18.5.2015, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Задача от SoftServe?
PM MAIL   Вверх
diadiavova
Дата 19.5.2015, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(blackwitcher @  18.5.2015,  11:30 Найти цитируемый пост)
 сам сделал, но не так как хотелось бы 

Собака унаследована от кошки, а зоомагазин от собаки? smile 
Тебе надо создать абстрактный класс или интерфейс Pet. Собаки и кошки будут унаследованы от него(или, в случае интерфейса, он будет реализован в этих классах). Методы и свойства, присутствующие в обоих классах вынеси в базовый. А в зоомагазине создай свойство типа List<Pet>, в которое и загружай экземпляры обоих классов. Ну и для вывода на экран информации об экземплярах, просто вызывай метод, определенный в Pet.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
blackwitcher
Дата 19.5.2015, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



спасибо, diadiavova
PM MAIL   Вверх
blackwitcher
Дата 19.5.2015, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



кое-что сделал, а дальше как - не знаю  smile 

Это сообщение отредактировал(а) blackwitcher - 19.5.2015, 12:43

Присоединённый файл ( Кол-во скачиваний: 25 )
Присоединённый файл  1.png 25,89 Kb
PM MAIL   Вверх
diadiavova
Дата 19.5.2015, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(blackwitcher @  19.5.2015,  11:56 Найти цитируемый пост)
кое-что сделал, а дальше как - не знаю

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

В зоомагазин добавь поле List<Pet>, определи методы добавления и представления всех. Метод AddPet будет принимать питомца и добавлять его в список, а IntroduceAll - обходить всю коллекцию и вызывать у каждого элемента Introduce


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
blackwitcher
Дата 19.5.2015, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



спасибо, diadiavova smile , сейчас сделаю 
PM MAIL   Вверх
blackwitcher
Дата 19.5.2015, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



думаю, что так правильно?

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  2.png 32,75 Kb
PM MAIL   Вверх
baldina
Дата 19.5.2015, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



не совсем

Код

abstract class Pet {
...
public abstract string Type ();
 
public void Introduce() 
{
        Console.WriteLine("I am {0} of {1}. I’m a {2}.", Name, Breed, Type());
}
...
}


Добавлено через 53 секунды
в Dog и Cat - override string Type()
PM MAIL   Вверх
blackwitcher
Дата 20.5.2015, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



Спасибо
PM MAIL   Вверх
blackwitcher
Дата 10.6.2015, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



всем спасибо, тема закрыта
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.