Java 接口和抽象类区别
程序员文章站
2022-06-13 21:02:06
...
1、Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以(就是interface中只能定义方法,而不能有方法的实现,而在abstract class中则可以既有方法的具体实现,又有没有具体实现的抽象方法)
如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个 新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点。
2、如果需要调用该内部类中的具体实现方法,可以使用匿名内部类方式调用,也可以重新写一个类继承它然后实现该方法。注意:抽象类中的所有抽象方法都必须在子类中实现。
public static void main(String[] args) throws Exception {
TBizHttpJsonTask pTask = new TBizHttpJsonTask() {
@Override
protected JSONObject buildRequestParam(IDalConnection pLink, TTaskBean pTaskBean, TTaskReturnBean pReturnBean, JSONObject pParamJson) throws Exception {
return null;
}
};
String pUrl = "http://...";
Map<String, String> pHeaders = null;
Map<String, String> pParams = new HashMap<String, String>();
pParams.put("jsondata", "");
String pRspText = pTask.invokeServiceByParam(null, pUrl, "POST", pHeaders, pParams);
System.out.println(pRspText);
TBizVoucherPushTask s = new TBizVoucherPushTask();
String pRspText = s.invokeServiceByParam(null, pUrl, "POST", pHeaders, pParams);
}