Третий принцип: поддержка полиморфизма в C#
Третий принцип: поддержка полиморфизма в C#
Теперь давайте рассмотрим заключительный принцип ООП – полиморфизм. Напомним, что базовый класс Employee определил метод GiveBonus(), который был реализован так.
// Предоставление премий работникам.
public class Employee {
…
public void GiveBonus(float amount) { currPay += amount;}
}
Ввиду того, что этот метод является открытым, вы теперь имеете возможность выдать премии продавцам и менеджерам (а также продавцам, занятым неполный рабочий день).
static void Main(string[] args) {
// Премии работникам.
Manager chucky = new Manager("Сhucky", 50, 92, 100000, "333-23-2322", 9000);
chucky.GiveBonus(300);
chucky.DisplayStats();
SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32- 3232 " , 31);
fran.GiveBonus(200); fran.DisplayStats();
Console.ReadLine();
}
Недостаток данного варианта в том, что наследуемый метод GiveBonus() действует одинаково для всех подклассов. В идеале премия продавца, как и продавца, работающего на неполную ставку, должна зависеть от числа продаж. Возможно, менеджеры должны получать льготы в дополнение к денежному вознаграждению, В связи с этим возникает интересный вопрос: "Каким образом родственные объекты могут по-разному реагировать на одинаковые запросы?"
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Шаг третий: все-в-одном
Шаг третий: все-в-одном Можно использовать data:URI и внедрить все изображения в соответствующие HTML/CSS-файлы, уменьшив таким образом размер страницы (за счет gzip-сжатия, по большому счету, потому что таблица стилей перед этим не сжималась) еще на 15%, однако время загрузки при
Третий Независимый
Третий Независимый «Житель Сан-Франциско изобрел совершенно новое телевидение», — гласил заголовок в San Francisco Chronicle 3 сентября 1928 г., всего за неделю до того, как вышла статья Сарноффа, осуждающая раннее телевидение. Журналист писал: «Два крупных прорыва в телевидении
Второй принцип: поддержка наследования в C#
Второй принцип: поддержка наследования в C# Теперь, после исследования различных подходов, позволяющих создавать классы с хорошей инкапсуляцией, пришло время заняться построением семейств связанных классов. Как уже упоминалось, наследование является принципом ООП,
Третий пример
Третий пример Данный пример служит лишь дополнением к предыдущему примеру, в котором мы отображали в таблице названия, начинающиеся с определенной буквы. В этом примере мы отобразим в таблице названия, в которых содержится буква «а».1. Сбросьте ранее установленный
Этап третий – зрелость (до 60-70-х годов XX века)
Этап третий – зрелость (до 60-70-х годов XX века) Границу между вторым и третьим этапами можно провести довольно условно. Для нас самой важной особенностью этапа зрелости является развитие графометрии, то есть попыток объективно доказать или отвергнуть те выводы, которые
Шаг третий – формирование графометрического профиля
Шаг третий – формирование графометрического профиля На сегодняшний день авторы, в принципе, сходятся в признаках почерка, включенных в круг графологического анализа. Какие-то признаки могут игнорироваться отдельными графологами и приниматься другими, но
Путь третий – работа в школах и больницах
Путь третий – работа в школах и больницах Еще в начале XX века многие графологи, в том числе знаменитый основатель французского графологического общества Жюль Крепье-Жамен, проводили многочисленные исследования в больницах и школах, то есть в тех местах, где большое
Круг третий. Десятое поколение
Круг третий. Десятое поколение Автор: Владимир ГуриевУ Sharp презентация была хорошая, но странная. Большую часть отведенного времени президент компании Микио Такаяма посвятил планам Sharp в области производства. Лично мне было интересно, я вообще люблю рассказы из серии
Шерлоки и ватсоны: третий отжим Сергей Голубицкий
Шерлоки и ватсоны: третий отжим Сергей Голубицкий Опубликовано 18 января 2014 «Нулевые» прошли под знаком доктора Хауса. Чем больше я думаю об этом неприятном киноперсонаже, тем больше убеждаюсь в том, что создатели сериала попали со своим
ПИСЬМОНОСЕЦ: Третий пункт
ПИСЬМОНОСЕЦ: Третий пункт Автор: Владимир ГуриевЗдравствуйте!Недавно купил себе сканер, и в первый же день он стал давать на изображении полосу. Сразу вспомнилась тема номера про сервис-центры, да и вообще — в лом везти новую вещь вроде как из-за незначительного дефекта,
Пределы полиморфизма
Пределы полиморфизма Неограниченный полиморфизм был бы несовместим со статическим понятием типа. Допустимость полиморфных операций определяется наследственностью.Все примеры полиморфных присваиваний, такие, как p := r и p := t, в качестве типа источника используют
Своенравие полиморфизма
Своенравие полиморфизма Не довольно ли примеров, подтверждающих практичность ковариации? Почему же кто-то рассматривает контравариантность, которая вступает в противоречие с тем, что необходимо на практике (если не принимать во внимание поведения некоторых молодых
Рейс MH370: эпизод третий, подводный Евгений Золотов
Рейс MH370: эпизод третий, подводный Евгений Золотов Опубликовано 09 апреля 2014 Поиски «Боинга 777-200», ночью 8 марта вылетевшего из Куала-Лумпура в Пекин и пропавшего без следа, продолжаются. Есть смысл вернуться к ним и нам. Рейс MH370 искали на земле, в
Mobile World Congress 2010. День второй и третий Ольга Топровер
Mobile World Congress 2010. День второй и третий Ольга Топровер День первыйMobile World Congress 2010. День второйНаши люди в БарселонеНа второй день Конгресса, 16 февраля, помимо постоянно моросящего дождя, налетел порывистый ветер. Посетители выставки перебежками передвигались между