Основы объектно-ориентированного программирования на языке C# book | Page 154
7 Класи
// .......
}
}
}
}
Так само як i методами. Можно користуватись й абстрактними
властивостями. Створення абстрактних властивостей майже не вiд-
рiзняється вiд абстрактних методiв:
модифiкатор
[ доступу] abstract тип[] iмя[’ властивостi] { get; set; }
Для реалiзацiı̈ в класi-спадкоємцi необхiдно записати:
модифiкатор
[ доступу] override тип[] iмя[’ властивостi]
{
get { тiлоаксессора get }
set { тiлоаксессора set }
}
7.10 Iнтерфейси
Нехай необхiдно написати програму, яка буде рисувати рiзнi фiгури
(квадрат - Square , елiпс - Ellipse , коло - Diamond ) на екранi, обчислю-
вати ı̈хню площю й периметр. Можна для рисування фiгур з кожного
класiв Square , Ellipse , Diamond написати такi фрагменти:
for (Square s: squares)
{
s.draw();
}
for (Ellipse e: ellipses)
{
e.draw();
}
for (Diamond d: diamonds)
{
d.draw();
}
У цих фрагментах squares, ellipses, diamonds списки екземплярiв
вiдповiдних класiв: Square, Ellipse, Diamond . Якщо в нас потiм зна-
добиться додати ще фiгури, то прийдеться дописувати програму. У
такiй ситуацiı̈ краще буде оголосити щось спяльне для фiгур з одна-
ковим за функцiоналом методом draw() .
Створимо спискок figures екземпляров рiзних класiв iз загальним
методом draw() . Однак, кожна фiгура має свiй особистий метод рису-
вання, тому цей метод треба реалiзовувати в кожному класi iндивiду-
154