Ниже у меня есть интерфейс Person, класс реализации и класс драйвера, который инициализирует Person с именем и просто выводит его снова. В чем преимущество использования
Person person = new PersonImpl();
вместо
PersonImpl person = new PersonImpl();
Предполагается, что интерфейс скрывает реализацию? Это правильный способ использования интерфейсов?
public class Driver {
public static void main(String [] args)
{
Person person = new PersonImpl();
person.setName("test name");
System.out.println("Name is "+person.getName());
}
}
public interface Person {
public void setName(String name);
public String getName();
}
public class PersonImpl implements Person{
private String name;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}