接口可以帮我们做很多事情。
假设,你写了一个类,类里面有多个方法,例如:
public class A{
public void a(){}
public void b(){}
...
}
有人想调用类中的方法a,有人想调用类中的方法b,还有的人想调用a、b两个方法。。。
对于这种情况,为了保证程序的安全性和稳定性,我们就能够建立3个不同的接口分别满足3中用户的需求。
public interface aa{
public void a();
}
public interface bb{
public void b();
}
public interface ab{
public void a();
public void b();
}
接着,我们用3个不同的类去实现这些接口:
public class AA implements aa{
public void a(){
}
}
public class BB implements bb{
public void b(){
}
}
public class AB implements ab{
public void a(){
}
}
由于aa是一个接口,无法实例化。
但是AA实现了aa这个接口,那么就存在着一种关系,即:
“AA is a aa”
而AA是可以实例化的,所以利用aa作为一种通用的数据类型,比较好。它可以引用AA类型的数据,也可以引用BB类型的数据。。。
如果你想在类A中操作这样的数据,就很好弄了。
我们在类A中添加一个方法:
public class A{
public void a(){}
public void b(){}
...
public void x(aa x){}
}
这里我们添加了一个x方法,它的参数是一个aa类型的。
操作x,让数据在类A和类AA之间传递,我们就在aa接口中添加方法x:
public interface aa{
public void a();
public void x(aa x);
}
public class AA implements aa{
public void a(){
}
public void x(aa x){
}
}
如果我们这个时候对x操作,那么根据多态,我们实际就操作了AA中的数据。
阅读(1659) | 评论(0) | 转发(0) |