implements
Определите свой класс как реализующий этот интерфейс. Используйте ключевое слово implements
.
Кроме того, в соглашениях Java имена классов начинаются с заглавной буквы. Назовите ваш класс ArrayDirectory
, а не arrayDirectory
.
public class ArrayDirectory implements Directory
{
public void insertEntry(Entry entry, String surname)
{
System.out.println( "Doing insertEntry work." ) ;
…
}
}
Полиморфизм
Теперь используйте этот класс, создавая объект через new
. Обращайтесь к этому объекту как к интерфейсу , а не к конкретному классу, если вы будете вызывать только методы, определенные в интерфейсе.
Directory directory = new ArrayDirectory() ;
Этот метод известен как полиморфизм («много форм»). Объект Dog
можно назвать более общим Animal
. Объект Circle
и Rectangle
могут называться Shape
. InternationalShippingLabel
и DomesticShippingLabel
могут называться ShippingLabel
. Оба класса PreferredCustomer
и StandardCustomer
могут реализовывать интерфейс Customer
.
Dynami c dispatch
Затем вызвать метод этого объекта.
directory.insertEntry( … , … ) ;
Через волшебные c из dynamici c dispatch во время выполнения JVM находит необходимый код в классе ArrayDirectory
для выполнения.
Кстати, обратите внимание на соглашения об именах на работе здесь. Имена классов начинаются с заглавной буквы, а объекты (на самом деле, ссылочные переменные) начинаются со строчной буквы. И, к сведению, в именах Java используется полный диапазон символов Unicode (французские акценты, японский и т. Д. c), а не только символы Engli sh ASCII.
Абстрактный класс
Если различные классы имеют некоторый дублирующий код, вместо этого сделайте их общий интерфейс абстрактный класс . Затем вы можете переместить этот дублированный код в абстрактный класс. Таким образом, когда вы позже выполняете проверки или выполняете работы по техническому обслуживанию, у вас есть только место для поиска, изучения и исправления этого кода.