Java抽象類與接口有哪些區(qū)別呢

Java抽象類與接口有哪些區(qū)別呢

天津卓眾教育      2022-04-17 14:35:01     11

Java抽象類與接口有哪些區(qū)別呢,很多常見的面試題都會出諸如抽象類和接口有什么區(qū)別,什么情況下會使用抽象類和什么情況你會使用接口這樣的問題。本文我們將仔細

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

很多常見的面試題都會出諸如抽象類和接口有什么區(qū)別,什么情況下會使用抽象類和什么情況你會使用接口這樣的問題。本文我們將仔細討論這些話題。

在討論它們之間的不同點之前,我們先看看抽象類、接口各自的特性。

Java抽象類

抽象類是用來捕捉子類的通用特性的。它不能被實例化,只能被用作子類的超類。抽象類是被用來創(chuàng)建繼承層級里子類的模板。以JDK中的GenericServlet為例:

public?abstract?class?GenericServlet?implements?Servlet,?ServletConfig,?Serializable?{????//?abstract?method????abstract?void?service(ServletRequest?req,?ServletResponse?res);?????void?init()?{????????//?Its?implementation????}????//?other?method?related?to?Servlet}

當(dāng)HttpServlet類繼承GenericServlet時,它提供了service方法的實現(xiàn):

public?class?HttpServlet?extends?GenericServlet?{????void?service(ServletRequest?req,?ServletResponse?res)?{????????//?implementation????}?????protected?void?doGet(HttpServletRequest?req,?HttpServletResponse?resp)?{????????//?Implementation????}?????protected?void?doPost(HttpServletRequest?req,?HttpServletResponse?resp)?{????????//?Implementation????}?????//?some?other?methods?related?to?HttpServlet}

Java接口

接口是抽象方法的集合。如果一個類實現(xiàn)了某個接口,那么它就繼承了這個接口的抽象方法。這就像契約模式,如果實現(xiàn)了這個接口,那么就必須確保使用這些方法。接口只是一種形式,接口自身不能做任何事情。以Externalizable接口為例:

public?interface?Externalizable?extends?Serializable?{?????void?writeExternal(ObjectOutput?out)?throws?IOException;?????void?readExternal(ObjectInput?in)?throws?IOException,?ClassNotFoundException;}

當(dāng)你實現(xiàn)這個接口時,你就需要實現(xiàn)上面的兩個方法:

public?class?Employee?implements?Externalizable?{?????int?employeeId;????String?employeeName;?????@Override????public?void?readExternal(ObjectInput?in)?throws?IOException,?ClassNotFoundException?{????????employeeId?=?in.readInt();????????employeeName?=?(String)?in.readObject();?????}?????@Override????public?void?writeExternal(ObjectOutput?out)?throws?IOException?{?????????out.writeInt(employeeId);????????out.writeObject(employeeName);????}}

抽象類和接口的對比

以上就是天津卓眾教育java培訓(xùn)機構(gòu)的小編針對“Java抽象類與接口有哪些區(qū)別呢”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。