Содержание
- 2. Наследование Насле́дование — механизм объектно-ориентированного программирования, позволяющий описать новый класс на основе уже существующего (родительского), при
- 3. Наследование
- 4. Наследование
- 5. Наследование
- 6. Наследование Класс, от которого произошло наследование, называется базовым или родительским (base class). Классы, которые произошли от
- 7. Наследование
- 8. Наследование При наследовании все атрибуты и методы родительского класса наследуются классом-потомком. Наследование может быть многоуровневым, и
- 9. Наследование Помимо единичного, существует и множественное наследование, когда класс наследует сразу нескольким классам. При этом он
- 10. Наследование При наследовании одни методы класса могут замещаться другими. Так, класс транспортных средств будет обладать обобщенным
- 11. Наследование class имя_наследника: имя_базового_класса {тело класса} Наследник обладает всеми полями, методами и свойствами предка, однако элементы
- 12. Наследование Ничего не делающий самостоятельно потомок не эффективен, от него мало проку. Что же может делать
- 13. класс "Питомец" class CPet { public int eyes = 2; //глаза public int tail; // хвост
- 14. класс "Питомец" Это общий класс. В нем могут быть все виды питомцев (собаки, птички, рыбки). У
- 15. Наследование CPet Pet = new CPet(); Console.WriteLine("Pet.eyes = "+ Pet.eyes); Console.WriteLine("Pet.tail = "+ Pet.tail); Console.WriteLine("Pet.legs =
- 16. Создадим наследников class CDog : CPet { public CDog() { legs = 4; } } class
- 17. Наследование CDog Dog = new CDog(); Console.WriteLine("Dog.eyes = "+ Dog.eyes); Console.WriteLine("Dog.tail = "+ Dog.tail); Console.WriteLine("Dog.legs =
- 18. Наследование Собаки имеют свой конструктор с к-вом ног = 4. У птиц появилось новое поле –
- 19. Наследование Все члены родительского класса public. Давайте попробуем сделать скрытыми глаза: int eyes = 2; //глаза
- 20. Наследование То, что появятся ошибки при выводе, понятно. (закомментируем). Но как быть с наследниками? Наследники должны
- 21. Наследование Давайте заведем одноглазую собаку. private скрывает и от наследников.
- 22. Наследование Напомню, хорошей стратегией является стратегия "ничего не скрывать от потомков". Какой родитель знает, что именно
- 23. Наследование
- 24. Добавим свои слова собаке class CDog : CPet { public CDog() { legs = 4; eyes
- 25. Наследование Теперь команда Dog.Speak(); даст результат:
- 26. Наследование Но такая грубая перегрузка метода вызовет предупреждение.
- 27. Наследование Для явного указания компилятору, что мы знаем, что делаем, используется слово new. new public void
- 28. Наследование Класс-наследник может иметь собственных наследников. class CMutant : CDog { public CMutant() { legs =
- 29. Наследование CMutant Mutant = new CMutant(); Console.WriteLine("Mutant.eyes = " + Mutant.eyes); Console.WriteLine("Mutant.tail = " + Mutant.tail);
- 30. Наследование Но при этом она еще помнит, что она собака. Метод Speak вызывает метод Speak родительского
- 31. Наследование class CMutant : CDog { public CMutant() { legs = 5; } new public void
- 32. Наследование Для этого используется ключевое слово base. Кстати, для обращения к собственному объекту, если это необходимо,
- 33. Наследование Обратите внимание, как здесь сработали конструкторы: сначала был вызван конструктор самого первого предка (CPet). Один
- 34. Наследование Каждый класс должен позаботиться о создании собственных конструкторов. Он не может в этом вопросе полагаться
- 35. Класс "Рыбка" class CFish : CPet { public int fins; // плавник public CFish(int eyes, int
- 36. Класс "Акула" class CShark : CFish { public int teeth; // зубы public CShark(int eyes, int
- 37. Наследование CShark Shark = new CShark(2, 1, 4, 100); Console.WriteLine("Shark.eyes = " + Shark.eyes); Console.WriteLine("Shark.tail =
- 39. Скачать презентацию