重寫個(gè)別方法

2018-06-02 09:38 更新

當(dāng)對(duì)已經(jīng)存在的實(shí)現(xiàn)類,想重寫其中的個(gè)別方法,而又不需要修改或不方便修改已經(jīng)存在代碼的情況下,可以重新寫一個(gè)實(shí)現(xiàn)類,指定比較高的version值,指定實(shí)現(xiàn)的接口,和實(shí)現(xiàn)需要重寫的實(shí)現(xiàn)類,然后重新重寫指定的方法即可。對(duì)之前的接口稍微修改下,如下

public interface ProductDao 
{
	public List<Product> findAll() throws Exception;
	public void save(Product product) throws Exception;
}

第一個(gè)實(shí)現(xiàn)類如下

@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");
	}
}

現(xiàn)在需要重寫實(shí)現(xiàn)類中的save方法,重寫一個(gè)實(shí)現(xiàn)類如下

@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值外,還有一個(gè)implement,用來指定接口

調(diào)用如下

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




以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)