Microsoft Word кл программирование на Java 2020 Зорина docx


Лекция 3. Реализация наследования в программах на Java



Pdf көрінісі
бет26/65
Дата17.10.2023
өлшемі3,23 Mb.
#117230
түріРеферат
1   ...   22   23   24   25   26   27   28   29   ...   65
Лекция 3. Реализация наследования в программах на Java. 
Абстрактные классы и интерфейсы. Реализация алгоритмов 
сортировок и поиска на Java 
3.1 Реализация наследования в Java 
В Java, мы используем слово - расширяет extends для наследования: 
public class CheckingAccount 
extends
BankAccount { 
Объекты нового класса получают: 
-
все поля (состояния) и поведение (методы) родительского класса; 
-
конструкторы и статические методы/поля не наследуются; 
-
по умолчанию, родит. класс для всех Object. 
Сила Java в том, что только один родительский класс (“единичное 
наследование”). 
Иерархия наследования 
Наследование – это цепочка классов, несколько уровней иерархии (рисунок 3.1) 
Рисунок 3.1 – Иерархия наследования 
Отношение "Has-a” 
Отношение "Has-a”: когда один объект содержит другой, как поле: 
public class BankAccountManager { 
private List accounts; 


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(); 


Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   ...   65




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет