下面我有一个Person接口,一个实现类和一个驱动程序类,它使用一个名称初始化Person并再次输出它.使用的优点是什么
Person person = new PersonImpl();
Run Code Online (Sandbox Code Playgroud)
代替
PersonImpl person = new PersonImpl();
Run Code Online (Sandbox Code Playgroud)
该接口应该隐藏实现?这是使用接口的正确方法吗?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
Ala*_*nse 13
这是使用接口的方式.
原因是你可以在不改变使用的代码的情况下编写另一个实现Person.
所以现在你可以使用,PersonImpl但稍后你可能需要一个OtherTypeOfPersonImpl.
您可以创建实现相同接口的新类,并且可以将新类与任何其他期望的代码一起使用Person.
一个很好的例子是List界面.
有多种实现方式List,例如ArrayList,LinkedList等.其中每一个都有优点和缺点.通过编写使用的代码List,您可以让每个开发人员决定哪种类型的List工作最适合他们,并且能够在不做任何更改的情况下处理任何类型的工作.