Встретил это в книге по Java Яков Файн "Программирование на Java...". Вот цитата из книги:
Должно быть вам интересно, зачем беспокоиться о создании интерфейсов без текста программы? Причина в том, что интерфейс, сделанный однажды, может использоваться во многих других классах. Например, когда другие классы(или сама виртуальная машина JVM) видят, что класс MyDrawingPad
реализует интерфейс MouseMotionListener
, они знают, что в этом классе точно есть методы mouseDragged()
и mouseMoved()
.
Пожалуйста, объясните то, что написано в цитате из книги.
Объявление интерфейса:
public interface IMyInterface {
public void Barabum() ;
}
Пример реализации интерфейса классом MyClass:
public class MyClass implements IMyInterface {
// Реализация интерфейса
@Override
public void Barabum(){
System.out.println("Hi!") ;
}
// Любые другие методы
public void OtherMethod1(){
System.out.println("Method1!") ;
}
//.................................
public void OtherMethodN(String s){
System.out.println("MethodN") ;
}
}
Здесь запись "implements IMyInterface" говорит о том, что в классе MyClass обязан присутствовать метод Barabum, притом не важно какой именно код этот метод содержит.
Интерфейс это чисто абстрактный класс с виртуальными методами, реализация которых описана в наследуемых от него классах. "Класс реализует интерфейс" означает что он наследует класс-интерфейс и содержит реализацию его виртуальных методов. Т. е. один и тот же метод объявленный в интерфейсе, будучи вызванным из разных классов которые от него унаследованы, будет выполнять разные действия, в зависимости от того как он реализован в конкретном классе-наследнике. А что в книге об этом ничего больше не написано?)
Интерфейс - это грубо говоря лишь название функций, без реализации.
Возьмём, напрмер, человека. Каждый человек умеет ходить, но он может это делать по разному.
Т.е. у человека есть интерфейс "ходить", но как именно будет ходить тот или иной человек зависит от реализации данного интерфейса классом.
Из цитаты мы видим, что класс MyDrawingPad описывает(реализует) интерфейс MouseMotionListener, тк. в интерфейсе есть два метода mouseDragged() и mouseMoved(), значит класс должен описать реализацию данных функций.
Не привожу вам примеры кода, в книге которую вы читаете листинги присутствуют.
Мне нужно скачать html-документ, используя Jsoup, но при этом так, чтобы символы, которые написаны кодом остались как код (например, ")
Есть задача: смоделировать бизнес-процесс согласования в ActivitiКратко схема такая