先有一个接口A,类B实现了接口A,而接口A的引用作为类B的一个成员变量,怎么理解这种写法??新手不太明白,谢谢大家
面向借口的变成有一个最大的好处是方便扩展。B类中有一个成员变量的类型是A,比如说再有一个C impl A,那么B 中可以存放C对象,如果还有另外一个D也impl了A,同样也可以存放D的实例化对象(java的三大特性之一:多态),在不确定的情况下,就只好定义接口A,又下级调用者赋值,最根本的目的是为了程序的可扩展性。
public interface A{
String getId();
}
public class B implements A{
protected long val;
private A a; //不太明白怎么要这么写
}
你管他呗,这里只是需要用到。就像你写的所有类都是object的子类,但是你写的类中可以定义一个object类型的变量一样!!!你想太多了
这种写法我觉得意义不大,首先B实现了A接口,B就有了A接口的方法,而在B接口中应用A接口,也是将A接口中的方法拿过来。
我的理解是代理模式的一种运用,类B作为代理,实现了服务接口A,同样关联了服务接口A,若在Spring中,则就可以将实现服务接口A的服务C注入到代理B中,这样就可以通过代理A调用服务C的方法了