/ / Защо интерфейсът наистина е необходим, когато нормалният клас може да върши същата работа [дубликат] - java, jsp, интерфейс

Защо интерфейс наистина се нуждае, когато нормален клас може да направи една и съща работа [дубликат] - java, jsp, интерфейс

Питам се за реалното използване на интерфейса. моля, проверете кода по-долу.

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 и да прочетете повече за интерфейсите.