54
// ...
}
Например объект BankAccountManager имеет или содержит ( “has-a”) List
внутри себя, и таким образом использует список счетов клиентов в качестве поля
класса.
Отношение “Is-a”
Отношение
является
(“Is-a”)
представляет
реализацию
множество
возможностей. Реализуется через интерфейсы и наследование.
public class CheckingAccount
extends BankAccount
{
// ...
}
Объект CheckingAccount является (“is-a”) BankAccount. Таким образом, он
может делать то, что BankAccount может делать:
–
он может быть заменен везде, где необходимо BankAccount;
–
Переменная типа BankAccount может ссылаться на объект
CheckingAccount.
Код, который не компилируется
Переменная
CheckingAccount
не может ссылаться
BankAccount
(не
каждый
BankAccount
"is-a"
CheckingAccount
)
CheckingAccount c = new BankAccount();.
Не может вызвать метод
CheckingAccount
для переменной типа
BankAccount
(может только использовать поведение
BankAccount
)
BankAccount
b = new CheckingAccount(0.10);
b.applyInterest();
Не может переносить поведение счета на переменную
Object
Object o = new CheckingAccount(0.06);
System.out.println(o.getBalance());
o.applyInterest();
Достарыңызбен бөлісу: