Питам се за реалното използване на интерфейса. моля, проверете кода по-долу.
interface Animal {
public void eat();
public void travel();
}
public class MammalInt implements Animal{
public void eat(){
System.out.println("Mammal eats");
}
public void travel(){
System.out.println("Mammal travels");
}
public int noOfLegs(){
return 0;
}
public static void main(String args[]){
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}
в горния код, ако премахна реализацията Animal от клас декларация все още кодът работи добре, без разлика. И така, какво е реалното използване на интерфейса. ?
Отговори:
0 за отговор № 1Без съмнение кодът ви работи дори и безинтерфейс в този момент, но. Внедряването на интерфейс позволява на клас да стане по-официален относно поведението, което обещава да предостави. Интерфейсите образуват договор между класа и външния свят, като този договор се изпълнява по време на изграждане от компилатора. Ако вашият клас твърди, че използва интерфейс, всички методи, дефинирани от този интерфейс, трябва да се появят в неговия изходен код, преди класът да се компилира успешно.
Например, ако имате множество класове на животни,всеки реализиращ Animal, ако по-късно искате да промените структурата на интерфейса на Animal, това ви помага да промените по-лесно структурата на всички ваши животни.
Друг пример, нека кажем, че работите в групаобект, а лидерът казва на вас и на някой друг да направите някои класове въз основа на дадена от него структура (интерфейса), реализирайки интерфейса, уверява, че сте получили правилните имена и структури на метода. Ако по-късно лидерът реши, че структурата на класовете не е добра, той ще промени интерфейса, принуждавайки ви да промените класа си.
За повече информация прочетете Какво е интерфейс или Ненадминати интерфейси и тяхната полезност
1 за отговор № 2
Целта на интерфейса не е да прави нещано да дефинираме какви неща трябва да прави класът, реализиращ интерфейса. Във вашия случай интерфейсът Animal определя кои функции могат да бъдат извиквани в Animal. Така че всички функции / класове, които разчитат на интерфейса Animal, знаят какви функции ще бъдат реализирани от класа, реализиращ интерфейса Animal.
Например: да предположим, че има метод, който кара животните да пътуват, например:
public void goToDestination(Animal a)
{
a.travel();
}
Сега тази функция може да извика пътуването на функциятаОбектът на тип реализиращ Animal, без да знае какъв е точният тип на обекта (Той може да бъде MammalInt или може да бъде Amphibian и т.н.). Това е силата на интерфейсите. Това е само основно обяснение на непрофесионалния интерфейс, на който можете да използвате Google и да прочетете повече за интерфейсите.