系统开发过程,最初只是实现基础功能,后面随着业务拓展,会增加了一些新功能,新功能和原来的功能有着一定相似的地方,但又有不同的逻辑,如果直接在原来的代码上修改,可能会影响原来的功能,重复写一套,代码的复用性和可维护性又很低。这个时候用java的继承机制来实现可以恰到好处,使得业务的升级和拓展非常方便,代码的复用性和可维护性也有很大的提高。
如下面的示例
1、BService继承了AService所有方法
2、BService可以覆盖AService的方法,改变原来功能的逻辑
3、BService可以有自己的方法,实现独有的功能
4、BService可以直接调用AService已有的方法
5、如果再拓展出CService根据需求可以继承AService也可以继承BService,这样使业务的拓展变得非常方便和快捷
AService.java
public interface AService {
public void methodA();
public void methodB();
}
AServiceImpl.java
/**
* 最开始功能的实现类
* @author:
* @date: 2018年4月12日 下午12:00:10
*/
public class AServiceImpl implements AService{
@Override
public void methodA() {
// TODO Auto-generated method stub
}
@Override
public void methodB() {
// TODO Auto-generated method stub
}
}
BService.java
public interface BService extends AService{
public void methodC();
public void methodD();
}
BServiceImpl.java
/**
* 新增需求服务类
* @author:
* @date: 2018年4月12日 下午12:00:10
*/
public class BServiceImpl extends AServiceImpl implements BService {
/**
* 可覆盖AService方法methodB,实现自己的逻辑
*/
@Override
public void methodB() {
// TODO Auto-generated method stub
super.methodB();
}
/**
* BService可以有自己的方法
*/
@Override
public void methodC() {
// TODO Auto-generated method stub
}
/**
* BService也可以直接调用AService已有的方法
*/
@Override
public void methodD() {
super.methodA();
// TODO Auto-generated method stub
}
}