下面我有一个 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;
}
}
这就是接口的使用方法。
原因是您可以稍后编写另一个实现,而无需更改使用的代码Person
.
所以现在你可以使用PersonImpl
但稍后你可能需要一个OtherTypeOfPersonImpl
.
您可以创建实现相同接口的新类,并且可以将新类与任何其他需要的代码一起使用Person
.
一个很好的例子是List
界面。
有多种实现方式List
例如ArrayList
, LinkedList
等等。这些都有优点和缺点。通过编写使用的代码List
,你可以让每个开发者决定什么类型List
最适合他们,并且能够在不做任何改变的情况下处理其中的任何一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)