欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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);

    }

参考

相关标签: java