logo

Типови интерфејса у Јави

У Јави интерфејси су од суштинског значаја када је у питању постављање уговора класа и гарантовање доследности кода у домену Јава програмирања. Он служи као нацрт класе тако што наводи низ метода које имплементирајућа класа треба да имплементира. Апстрактност, модуларност и могућност одржавања њиховог кода програмери могу постићи коришћењем интерфејса. Тхе различити типови интерфејса у Јави биће разматрано у овом одељку.

Маркер Интерфацес

Интерфејси маркера, који се често називају интерфејси ознака, су интерфејси без декларисаних метода. Једноставно речено, они служе као маркери, сигнализирајући да класа која имплементира интерфејс маркера има одређена својства или квалитете. Јава рунтиме окружење и други алати користе ове АПИ-је за испоруку додатних функционалности или података. Сериализабле, Цлонеабле и Ремоте су неке инстанце интерфејса маркера у Јави.

Функционални интерфејси

Као део побољшања ламбда израза и функционалног програмирања, у Јаву 8 су додати функционални интерфејси. За интерфејс који има тачно једну апстрактну методу каже се да је функционалан. Додатно, могуће су подразумеване и статичке методе. Многе могућности Јава функционалног програмирања, као што су ламбда изрази и референце метода, користе функционалне интерфејсе. Предикат, потрошач, функција и добављач су само неки од уграђених функционалних интерфејса које нуди пакет јава.утил.фунцтион.

Интерфејси једног апстрактног метода (САМ).

Пре Јаве 8, постојале су одређене врсте функционалних интерфејса званих САМ интерфејси. Ови интерфејси могу имати било који број подразумеваних или статичких метода, али само један апстрактни метод. Руннабле, Цомпаратор и МоусеЛистенер су неколико АПИ-ја пре-Јава 8 који садрже примере САМ интерфејса. Са увођењем функционалних интерфејса у Јаву 8, САМ интерфејси се могу користити са ламбда изразима и сматрати функционалним интерфејсима.

стринг то дате

Нормални интерфејси

Најчешћа врста интерфејса у Јави су нормални интерфејси. Имају једну или више апстрактних метода које класе које имплементирају интерфејс морају имплементирати. Почевши од Јаве 8, нормални интерфејси могу додатно да садрже подразумеване и статичке методе. Програмери користе нормалне интерфејсе да специфицирају правила или захтеве које класе морају да прате. Листа, Сет и Мап, који се сви налазе у пакету јава.утил, су примери типичних Јава интерфејса.

Вишеструки интерфејси наслеђивања

Јава дозвољава класама да имплементирају више интерфејса, али не подржава вишеструко наслеђивање класа. Интерфејси које класа имплементира да истовремено дефинише бројне уговоре или наслеђује понашање познати су као интерфејси вишеструког наслеђивања. Класа може понудити функционалност коју описује сваки интерфејс имплементацијом неколико интерфејса. Уз помоћ ове функционалности, програмери могу поново користити код и повећати прилагодљивост својих идеја.

Ево примера кода за сваки тип интерфејса у Јави заједно са њиховим одговарајућим излазом:

шта је десктоп.ини

Маркер Интерфацес

МаркерИнтерфацеЕкампле.јава

 import java.io.Serializable; // Marker Interface interface MyMarkerInterface extends Serializable { } public class MarkerInterfaceExample { public static void main(String[] args) { MyMarkerInterface obj = new MyMarkerInterface() { }; System.out.println(obj instanceof Serializable); // true } } 

Излаз:

 true 

Функционални интерфејси

ФунцтионалИнтерфацеЕкампле.јава

 import java.util.function.Predicate; public class FunctionalInterfaceExample { public static void main(String[] args) { Predicate isLengthGreaterThan5 = str -> str.length() > 5; System.out.println(isLengthGreaterThan5.test('Hello')); // false System.out.println(isLengthGreaterThan5.test('OpenAI')); // true } } 

Излаз:

 false true 

Интерфејси једног апстрактног метода (САМ):

САМИНтерфацеЕкампле.јава

 interface MySAMInterface { void performAction(); } public class SAMInterfaceExample { public static void main(String[] args) { MySAMInterface obj = () -> System.out.println('Performing action'); obj.performAction(); // Performing action } } 

Излаз:

јавасцрипт за падајући мени
 Performing action 

Нормални интерфејси

НормалИнтерфацеЕкампле.јава

 import java.util.List; import java.util.ArrayList; interface MyInterface { void printMessage(); } class MyClass implements MyInterface { @Override public void printMessage() { System.out.println('Hello, World!'); } } public class NormalInterfaceExample { public static void main(String[] args) { MyInterface obj = new MyClass(); obj.printMessage(); // Hello, World! } } 

Излаз:

намера намера
 Hello, World! 

Вишеструки интерфејси наслеђивања:

МултиплеИнхеританцеИнтерфацеЕкампле.јава

 interface Interface1 { void method1(); } interface Interface2 { void method2(); } class MyClass implements Interface1, Interface2 { @Override public void method1() { System.out.println('Method 1'); } @Override public void method2() { System.out.println('Method 2'); } } public class MultipleInheritanceInterfaceExample { public static void main(String[] args) { MyClass obj = new MyClass(); obj.method1(); // Method 1 obj.method2(); // Method 2 } } 

Излаз:

 Method 1 Method 2 

Ови примери показују употребу и понашање различитих типова интерфејса у Јави. Можете покренути сваки исечак кода појединачно да бисте посматрали одговарајући излаз.

У закључку, Јава интерфејси нуде моћан метод за одређивање уговора и постизање модуларности кода. Интерфејси су од суштинског значаја за развој Јаве, било да су интерфејси маркера који указују на специфичне особине, функционални интерфејси који омогућавају функционално програмирање, регуларни интерфејси који дефинишу уговоре или интерфејси вишеструког наслеђивања који комбинују неколико уговора. Јава програмери су боље опремљени да направе јасан, проширив код када су свесни различитих типова интерфејса и њихових функција.