假设我有这个界面:
public interface IBox
{
public void setSize(int size);
public int getSize();
public int getArea();
//...and so on
}
我有一个实现它的类:
public class Rectangle implements IBox
{
private int size;
//Methods here
}
如果我想使用 IBox 接口,我实际上无法创建它的实例,方式如下:
public static void main(String args[])
{
Ibox myBox=new Ibox();
}
正确的?所以我实际上必须这样做:
public static void main(String args[])
{
Rectangle myBox=new Rectangle();
}
如果这是真的,那么接口的唯一目的就是确保实现接口的类具有接口所描述的正确方法?或者还有其他接口的用途吗?
接口是使代码更加灵活的一种方式。你所做的是这样的:
Ibox myBox=new Rectangle();
然后,稍后,如果您决定要使用不同类型的盒子(也许有另一个库,具有更好类型的盒子),则将代码切换为:
Ibox myBox=new OtherKindOfBox();
一旦你习惯了它,你就会发现这是一种很棒的(实际上是必要的)工作方式。
另一个原因是,例如,如果您想要创建一个框列表并对每个框执行一些操作,但您希望该列表包含不同类型的框。在每个盒子上你可以这样做:
myBox.close()
(假设 IBox 有一个 close() 方法)即使 myBox 的实际类根据您在迭代中所处的框而变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)