Afzaal Ahmad Zeeshan
Вот что вам нужно узнать здесь:
1. Наследство
2. Полиморфизм
А затем, позже, в расширенных концепциях, вам также нужно понять, как разрабатывается API. Вероятно, в большинстве случаев интерфейс используется там, где вам нужно определить структуру вашего контракта — в API, особенно там, где вы используете интерфейсы и т. д., Вы определяете контракты, а не простые объекты. Причина в том, что интерфейс должен быть реализован. Этот интерфейс может быть использован для того, чтобы клиентские приложения, использующие наш API, написали реализацию нашей стандартной структуры и т. д.
Интерфейсы используются не только в Java, они также используются в C# и C++ (хотя C++ не предоставляет никакого интерфейса ключевых слов). Логическое использование их применяется при разработке клиентского приложения, я бы не использовал (и не рекомендовал) рассматривать их в простом приложении.
Нужен пример? Конечно, прочтите учебник в документах Oracle, они дают очень хороший пример велосипедного API,
interface Bicycle {
// wheel revolutions per minute
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
Теперь, если вы хотите создать реализацию этого стандарта, то вы реализуете весь сам интерфейс,
class ACMEBicycle implements Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
// The compiler will now require that methods
// changeCadence, changeGear, speedUp, and applyBrakes
// all be implemented. Compilation will fail if those
// methods are missing from this class.
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}
Обратите внимание на пустые тела методов в интерфейсе и добавление тел к тем же функциям в классе. Есть еще одна дополнительная вещь в классе,
можете ли вы догадаться, что?
Я бы оставил все остальное на ваше усмотрение, пожалуйста, также откройте NetBeans и попробуйте повозиться здесь и там с несколькими вещами, чтобы понять, как они работают.