在代码中时常会见到,一个抽象类实现一个接口,
这一段代码的截图是在Junit的源码中截取的.
我能想到的解释是:为了转型方便,如果这个方法只在非抽象实现类实现,能调用到这个方法的做法就是:
1,接口 obj = new 实现类();
2,实现类 obj = new 实现类();
如果转型为抽象类的话则不能使用这个方法.
这一段代码的截图是在Junit的源码中截取的.
我能想到的解释是:为了转型方便,如果这个方法只在非抽象实现类实现,能调用到这个方法的做法就是:
1,接口 obj = new 实现类();
2,实现类 obj = new 实现类();
如果转型为抽象类的话则不能使用这个方法.
如:抽象类 obj = new 实现类();
这样用,是从程序的设计角度来考虑的,设计模式中有一个开闭原则,即对扩展开放,对修改关闭.Spring框架中这种设计模式的运用的地方有很多.每一个抽象类都有他自己的处理方式,他的子类可以覆盖父类的方法.在子类重载父类的方法中,可以调用父类方法.还是多看看设计模式!