重写个别方法
2018-06-02 09:38 更新
当对已经存在的实现类,想重写其中的个别方法,而又不需要修改或不方便修改已经存在代码的情况下,可以重新写一个实现类,指定比较高的version值,指定实现的接口,和实现需要重写的实现类,然后重新重写指定的方法即可。对之前的接口稍微修改下,如下
public interface ProductDao
{
public List<Product> findAll() throws Exception;
public void save(Product product) throws Exception;
}
第一个实现类如下
@Implement
public class ProductDaoImpl implements ProductDao
{
public List<Product> findAll() throws Exception {
System.out.println("ProductDaoImpl findAll 111");
return null;
}
public void save(Product product) throws Exception {
System.out.println("ProductDaoImpl save 111");
}
}
现在需要重写实现类中的save方法,重写一个实现类如下
@Implement(version=3,implement=ProductDao.class)
public class ProductDaoImpl3 extends ProductDaoImpl
{
@Override
public void save(Product product) throws Exception {
System.out.println("ProductDaoImpl3 save 333");
}
}
注意注解中除了比较高的version值外,还有一个implement,用来指定接口
调用如下
ProductDao productDao=(ProductDao)Factorys.getImpl(ProductDao.class);
System.out.println("productDao="+productDao);
productDao.findAll();
productDao.save(null);
输出
productDao=demo.dao.impl.ProductDaoImpl3@7da79447
ProductDaoImpl findAll 111
ProductDaoImpl3 save 333
以上内容是否对您有帮助:
← 版本与升级
更多建议: