
c# / C#. slsg 7. qlgrongcol oop
.pdf
Классы могут быть вложены в другие классы
class Program
{
static void Main()
{
Bank.Account yours = new Bank.Account();
}
}
class Bank
{
... class Account { ... }
}

Вложенные классы могут быть объявлены, как публичные или
частные class Bank
{
public class Account { ... }
private class AccountNumberGenerator { ... }
}
class Program
{
static void Main()
{
Bank.Account accessible; Bank.AccountNumberGenerator inaccessible;
}
}

Часть 4

Наследование определяет связь «является видом чего-либо»
Наследование указывает на родство классов
Классы-наследники конкретизируют классыпредки
Обобщение |
|
|
|
|
|
|
Музыкант |
|
Базовый класс |
Эквивалентны ли |
|||
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
биологическое |
|
|
|
|
|
|
наследование и |
|
|
|
|
|
|
|
|
Виолончелист |
Класс-наследник |
наследование в ООП? |
|||
Спецификация |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|

Классы связываются наследованием в иерархии классов
Музыкант Музыкальный инструмент
Струнный музыкант Струнный инструмент
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
??? |
|
|
Виолончелист |
|
Виолончель |
|
|
??? |
||||
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|

Единичное наследование: класс наследуется от одного базового класса
Используется в C#
Множественное наследование: класс наследуется от двух и более базовых классов
Запрещено в C#
Струнный инструмент |
Музыкальный инструмент Струнный прибор |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Виолончель |
|
|
Струнный инструмент |
|||
|
|
|
|
|
|
|

Имя метода присутствует в базовом классе
Реализации метода присутствуют в классахнаследниках
Струнный музыкант
+НастроитьИнструмент()
Гитарист
+НастроитьИнструмент()
Виолончелист
+НастроитьИнструмент()

Некоторые классы существуют только для того, чтобы от них наследовались другие классы
Запрещено создавать экземпляры таких классов
Эти классы являются абстрактными
Струнный музыкант
|
|
|
|
|
|
|
|
|
|
|
|
Гитарист |
|
|
Виолончелист |
||
|
|
|
|
|
|

Интерфейсы содержат только операции без их реализации
«interface»
Музыкант
Музыкант
Струнный музыкант
Виолончелист

Обычные вызовы методов могут быть определены во время компиляции
Вызовы полиморфических методов определяются во время выполнения программы
Исполнительная среда
«interface»
Музыкант |
Позднее связывание |
+НастроитьИнструмент()
Музыкант
Виолончелист
+НастроитьИнструмент()
Ранее связывание