Интерфейс определяет набор методов, который должен быть реализован .. Он говорит ничего о том, как они реализованы. Здесь происходит определение класса, поскольку оно определяет, как эти методы реализуются.
Таким образом, когда вы вызываете класс, который реализует определенный интерфейс, то вы точно знаете, что найдете какой-либо набор методов, определяемых интерфейсом.
Интерфейсы обычно удобны, когда вам нужно выставлять некоторые конечные точки для вашего приложения, без необходимости раскрывать логику.
EDIT: В соответствии с вашим примером интерфейс printable
определяет, какое поведение должен выполнять класс, который его реализует, в данном случае print
.
Это позволит вам что-то сделать по линиям printable p = new A(); p.print();
.
Предполагая, что у вас есть что-то, что дает объект, который реализует интерфейс printable
, тогда тот, кто звонит этому методу, не должен беспокоить, какова фактическая реализация метода print
. Интерфейс гарантирует, что все, что вы возвращаете, будет содержать реализацию этого метода.
Разработка. Приведите пример кода. Объясните нам, что именно вы не понимаете. Если вы получаете ошибки компилятора или времени выполнения, полностью скопируйте их и вставьте их. Как и я, я не могу понять, о чем вы спрашиваете. –
Этот вопрос крайне неясен, но если я правильно понимаю, вы ищете объяснение объектно-ориентированного дизайна. Это не сайт для этого. –
@ JB Nizet - можно у, пожалуйста, объясните сейчас. Спасибо – NarutoUzumaki