抽象类可以实现接口的某个方法,而不需要实现所有方法
一个类继承抽象类,必须实现抽象类实现接口时未实现的方法
一个类继承抽象类,抽象类已经实现接口的方法,这个方法在该类中可实现也可不实现
例子:
public abstract interface Ajax
{
public abstract void setCharacterEncoding(String paramString);
public abstract void setDataResult(Map<String, Object> paramMap);
public abstract void doBusiness();
public abstract void doHandle(AjaxVo paramAjaxVo);
public abstract void setDataResultKey(String paramString);
}
-----------------------------------------------------------------------
public class SimpleAjax extends DefaultAjax
{
public SimpleAjax(String encoding, Map<String, Object> dataResult, String ajaxKey)
{
setCharacterEncoding(encoding);
setDataResult(dataResult);
setDataResultKey(ajaxKey);
super.doBusiness();
}
public void setCharacterEncoding(String encoding)
{
this.encoding = encoding;
}
public void setDataResult(Map<String, Object> dataResult)
{
this.dataResult = dataResult;
}
public void doHandle(AjaxVo vo)
{
}
public void setDataResultKey(String dataResultKey)
{
this.dataResultKey = dataResultKey;
}
}
-----------------------------------------------------------
public abstract class DefaultAjax
implements Ajax
{
static Logger log = Logger.getLogger(DefaultAjax.class);
protected Map<String, Object> dataResult = null;
protected String encoding = "utf-8";
protected String dataResultKey = null;
public void doBusiness()
{
if ((this.dataResult == null) || (this.dataResult.get(this.dataResultKey) == null))
return;
HttpServletResponse resp = Struts2Utils.getResponse();
resp.setCharacterEncoding(this.encoding);
PrintWriter pw = null;
try {
pw = resp.getWriter();
} catch (IOException e) {
log.error(e.getMessage());
throw new RuntimeException(e.getMessage());
}
pw.print(this.dataResult.get(this.dataResultKey).toString());
pw.close();
}
}
-----------------------------------------------------------------------------------------------