Понятието интерфейс предствлява следващата стъпка след абстрактния клас. Интерфейса представлява декларация на съвкупност от методи и константи. Методите са декларирани с прототиповете си - тип на резултата, име, брой и тип на аргументите. Te като нямат тяло - няма описание на метода. . От интерфейс не може да бъде създаван обект.
За дефиниране на интерфейс се използва синтаксис аналогичен с декларацията на клас:
[public] interface name [extends
interface1,interface2,
...] {
modifier type constant;
…
modifier type methode( parametres );
…
}
Целта на на интерфейса е деклариране на методи, които трябва задължително да присъстват в класовете, които ги използват. Ако един клас наследява методите на даден интефейс се кава, че той "прилага" (implements) този интерфейс.
Както и класа интерфейса дефинира нов тип. Всеки обект, който прилага този интерфейс може да се разглежда като обект от този тип и следователно притежава всички методи и константи декларирани в интерфейса.
Важно:
[public] class fille implements service {
...
}
Производният клас "fille" трябва да дефинира всички методи, декларирани в интерфейса "service". Ако "service" наследява други интерфейси, класът "fille" трябва да да дефинира също всички методи от наследените интерфейси.
Наследените методи трябва да бъдат дефинирани "public".
Java не разрешава множествено
наследяване - всеки клас може да наследява
един единствен базов клас. Всеки клас обаче
може да прилага повече от един интерфейс. По
този начин се заобикаля едно от големите
ограничения в езика и да се използват
някои от подходите на множественото
наследяване.
//: Music.java import java.util.*; interface Instrument { // Само
декларации на методите: interface Name { class Wind implements Instrument,Name
{ class Percussion implements
Instrument,Name
{ class Stringed implements
Instrument,Name { class Brass extends Wind {
class Woodwind extends Wind {
public class Music {
public static void main(String[] args) {
Name[] orchestra1 = new Name[5]; |
java Music
|