【Java】接口(interface)VS抽象类
生活随笔
收集整理的這篇文章主要介紹了
【Java】接口(interface)VS抽象类
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
接口(interface)可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的。接口中的方法定義默認(rèn)為public abstract類型,接口中的成員變量類型默認(rèn)為public static final。另外,
接口和抽象類在方法上有區(qū)別:????
- 1.抽象類可以有構(gòu)造方法,接口中不能有構(gòu)造方法。??
- 2.抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。
- 3.抽象類中可以有普通成員變量,接口中沒有普通成員變量?
- 4. 抽象類中的抽象方法的訪問類型可以是public,protected和默認(rèn)類型
- 5. 抽象類中可以包含靜態(tài)方法,接口中不能包含靜態(tài)方法
- 6. 抽象類和接口中都可以包含靜態(tài)成員變量,抽象類中的靜態(tài)成員變量的訪問類型可以任意,但接口中定義的變量只能是public static final類型,并且默認(rèn)即為public static final類型
- 7. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類。
二者在應(yīng)用方面也有一定的區(qū)別:
接口更多的是在系統(tǒng)架構(gòu)設(shè)計(jì)方法發(fā)揮作用,主要用于定義模塊之間的通信契約。而抽象類在代碼實(shí)現(xiàn)方面發(fā)揮作用,可以實(shí)現(xiàn)代碼的重用,例如,模板方法設(shè)計(jì)模式是抽象類的一個(gè)典型應(yīng)用,假設(shè)某個(gè)項(xiàng)目的所有Servlet類都要用相同的方式進(jìn)行權(quán)限判斷、記錄訪問日志和處理異常,那么就可以定義一個(gè)抽象的基類,讓所有的Servlet都繼承這個(gè)抽象基類,在抽象基類的service方法中完成權(quán)限判斷、記錄訪問日志和處理異常的代碼,在各個(gè)子類中只是完成各自的業(yè)務(wù)邏輯代碼。總結(jié)
以上是生活随笔為你收集整理的【Java】接口(interface)VS抽象类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设置networkx中每个节点的位置
- 下一篇: Java网络爬虫实操(8)