MyTetra Share
Делитесь знаниями!
extends
Время создания: 19.08.2017 20:45
Текстовые метки: knowledge
Раздел: Java - Oracle tutorial - Syntaxis - Classes
Запись: xintrea/mytetra_db_mcold/master/base/1503164633t2eqhls3v9/text.html на raw.githubusercontent.com

В этой статье сделана попытка объяснить некоторые термины объектно-ориентированного программирования Java, и ответить на вопросы: что значит слово extends в определении класса? Что значит слово implements в определении класса? В чем разница между extends и implements? Что такое interface? Что такое @Override?

Если коротко, то:

extends это ключевое слово, предназначенное для расширения реализации какого-то существующего класса. Создается новый класс на основе существующего, и этот новый класс расширяет (extends) возможности старого.


Java не поддерживает множественное наследование (multiple inheritance) для классов. Эта проблема также решается путем использования нескольких интерфейсов.


Пример реализации интерфейса (как используется ключевое слово implements):

//Интерфейс, здесь нет реализации методов,

// только их объявления:

public interface ExampleInterface

{

public void do();

public String doThis(int number);

}

Интерфейс также может содержать в себе декларации полей констант, аннотации, интерфейсы и даже классы.

//А вот это уже реализация (применение ключевого слова implements):

public class sub implements ExampleInterface

{

public void do()

{

//определите то, что должно произойти

...

}

public String doThis(int number)

{

//определите то, что должно произойти

...

}

}

Теперь пример расширения класса (применение ключевого слова extends):

//Исходный класс, который будет расширен:

public class SuperClass

{

public int getNb()

{

//определите то, что должно произойти

return 1;

}

public int getNb2()

{

//определите то, что должно произойти

return 2;

}

}

//Производный класс, расширяющий исходный:

public class SubClass extends SuperClass

{

//Вы можете переназначить (override) реализацию метода:

@Override

public int getNb2()

{

return 3;

}

}

Вот что получится в результате:

SubClass s = new SubClass();

s.getNb(); //возвращает 1

s.getNb2(); //возвращает 3

SuperClass sup = new SuperClass();

sup.getNb(); //возвращает 1

sup.getNb2(); //возвращает 2

Чтобы лучше понять работу терминов extends, implements, interface, @Override, необходимо изучить принципы объектно-ориентированного программирования: динамическое связывание (dynamic binding), полиморфизм (polymorphism) и общее наследование (general inheritance) [1].

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования