Интерфейсът е референтен тип, който се използва за налагане на договор с клас. Договорът се отнася до задължение за прилагане на методите, които интерфейсът определя.

Интерфейсите предоставят абстракция между методите, които дефинират, и начина, по който потребителят ги прилага в клас. Практически случай на използване на това е в API (интерфейси за програмиране на приложения).

API позволяват на вашата програма да комуникира с други програми, без да знае как се прилагат. Това е важно както по собственически причини (за компанията, която притежава правата), така и за лесно развитие от ваша страна.

Нека да разгледаме как да използваме Java интерфейсите.

Определяне на интерфейси

За да декларирате интерфейс, поставете ключовата дума интерфейс преди името на интерфейса.

интерфейс Car {
// постоянни декларации, ако има такива
int гуми = 4;
// подписи на метод
int светлини (int яркост);
int turn (int гуми, посока на низ) {
// някакъв код
}
}

В заглавката на интерфейса можете също да включите нивото на видимост преди ключовата дума интерфейс.

instagram viewer

Стойностите в интерфейса са постоянни. Тези стойности са по подразбиране обществен, статичен и финал. Следователно, няма нужда да използвате тези ключови думи, докато декларирате стойности в тялото на интерфейса.

Свързани: Как да управлявате променлив обхват в Java

Тялото на интерфейса също може да има по подразбиране, абстрактно, статично методи. Тези методи са по подразбиране обществен, така че няма нужда да посочвате тези модификатори на достъп, когато ги декларирате.

Абстрактните методи се декларират, като се изоставят къдравите скоби на тялото на метода. Вижте ред 7 в кода по -горе. Статичните методи се декларират, като се продължи името на метода с ключовата дума статичен & методите по подразбиране са декларирани с по подразбиране модификатор.

Сега би било подходящ момент да споменем, че трябва да използвате методи, декларирани в интерфейс във всички класове, които го прилагат. Ако не направите това, компилаторът ще "наложи договора", като даде грешка при компилация.

Това специфично свойство на интерфейсите може да има някои недостатъци. Помислете за случай, в който доставчик на интерфейс за програмиране на приложения (API) решава да добави повече методи към своите интерфейси, но няколко приложения са базирани на старите интерфейси. Разработчиците, използващи старите интерфейси в своите програми, ще трябва да пренапишат кода си, което не е практично.

И така, това е мястото по подразбиране влизат методи. Те позволяват на доставчиците на API да добавят повече методи към техните интерфейси, като същевременно гарантират двоична съвместимост с по -стари версии на интерфейса.

default int getDirection (координати на низ) {
// напишете някакъв код, за да дадете изпълнение по подразбиране
}

Горният метод показва как се извиква метод по подразбиране getDirection е деклариран. Забележете, че трябва да включите реализация на метод по подразбиране, когато го пишете.

Използване на интерфейси

Сега дефинирахме интерфейси в Java, можем да преминем към начина, по който можете да ги приложите. Ще разберете това в раздела по -долу.

Внедряване на интерфейси

За да внедрите интерфейс, използвайте ключовата дума приспособления използвайки този синтаксис:

клас А изпълнява интерфейс P {
}

Не забравяйте, че трябва да използвате всички интерфейсни методи в класа. Можете да пренебрегнете това правило само ако един от методите е дефиниран като по подразбиране в интерфейса.

Свързани: Въведение в използването на свързани списъци в Java

Ако искате вашият клас да реализира множество интерфейси, можете да ги разделите, като използвате запетаи в декларацията на заглавката.

Пример:

клас А изпълнява интерфейс P, Q, R {
}

Ако класът, който реализира интерфейса, е подклас, използвайте синтаксиса по -долу:

клас A разширява B изпълнява C, D {
}

Интерфейсите позволяват множество наследства в Java. Обикновено един клас може да разширява само един клас (единично наследяване). Интерфейсите са единственият начин, по който Java може да извърши множество наследства.

Интерфейсите също могат да разширяват други интерфейси, точно както един клас може да разшири друг клас. Детският интерфейс наследява методите на интерфейса, който разширява.

Вижте примера по -долу:

интерфейс A разширява B { 
}

Освен да използвате методи по подразбиране за промяна на интерфейс, без да изисквате от разработчиците да променят текущите си програми, можете също да разширите съществуващите интерфейси.

Сега имате някои основни познания за Java интерфейсите

Интерфейсите в Java демонстрират абстракция, един от четирите стълба на обектно-ориентираното програмиране. Полиморфизмът е един от тези четири стълба. Той се отнася до способността на метода да приема много форми.

Можете да приложите полиморфизъм в Java чрез претоварване на метода или замяна на метода. Следващото в списъка ви за четене на Java трябва да бъде как да приложите тези функции.

ДялТуителектронна поща
Полиморфизъм в Java: Как да претоварваме или заместваме методи

Намалете кода, който пишете с метод за претоварване и замяна.

Прочетете Напред

Свързани теми
  • Програмиране
  • Java
  • Програмни езици
  • Програмиране
За автора
Джером Дейвидсън (25 статии са публикувани)

Джером е щатен писател в MakeUseOf. Той обхваща статии за програмиране и Linux. Той също е ентусиаст на крипто и винаги следи крипто индустрията.

Още от Джером Дейвидсън

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате