日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入java抽象类和接口

發(fā)布時間:2024/10/14 编程问答 121 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入java抽象类和接口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄:
1.抽象類

2.接口

3.抽象類和接口的區(qū)別

1.抽象類

(1)抽象方法:

抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實現(xiàn)。抽象方法的聲明格式為:

abstract void a();

抽象方法必須用abstract關(guān)鍵字進行修飾,如果一個類含有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關(guān)鍵字修飾。因為抽象類中含有無具體實現(xiàn)的方法,

(2)抽象類.

abstract class a{abstract void cun(); }

注意事項:

1.抽象方法必須為public或者protected(因為如果為private,則不能被子類繼承,子類便無法實現(xiàn)該方法),缺省情況下默認為public。
2.如果一個類繼承于一個抽象類,則子類必須實現(xiàn)父類的抽象方法。如果子類沒有實現(xiàn)父類的抽象方法,則必須將子類也定義為為abstract類。
3.抽象類不能用來創(chuàng)建對象;
4.不能用抽象類創(chuàng)建對象,但是抽象類有構(gòu)造器
5.外部抽象類不能用static修飾但是內(nèi)部抽象類可以用static修飾
6.抽象類可以繼承抽象類也可以實現(xiàn)接口
7.外部抽象類不能用static

有可能有的小伙伴就會疑惑了
外部抽象類不能用static那么內(nèi)部抽象類就行?
回答是yes
例子:

//定義一個抽象類A abstract class A{//定義一個內(nèi)部抽象類Bstatic abstract class B{ //static定義的內(nèi)部類屬于外部類public abstract void saoMethod();} }class C extends A.B{public void saoMethod(){System.out.println("======saoMethod方法執(zhí)行了======");} } public class StaticDemo {public static void main(String[] args) {A.B ab = new C();//向上轉(zhuǎn)型ab.saoMethod();}}運行結(jié)果: ======saoMethod方法執(zhí)行了======

臥槽****還能這么玩
當然可以

當內(nèi)部的抽象類被聲明成靜態(tài)的時,就相當于一個外部抽象類,就可以用extends 外部類.內(nèi)部類繼承了

2.接口

(1)定義一個接口的形式

interface aaa{}

(2)接口的注意事項:

1.接口中的變量會被隱式地指定為public static final變量
2.方法且只能是public abstract方法,并且接口中所有的方法不能有具體的實現(xiàn),也就是說,接口中的方3.接口可以多繼承
4.一個類可以實現(xiàn)多個接口

(3)關(guān)于接口的繼承和實現(xiàn)的實例:

package untl1; public class aaa implements ddd,eee{//注意實現(xiàn)多個接口的格式public void bbb(){System.out.println("bbb");}public void ccc(){System.out.println("ccc");}public void ddd(){System.out.println("ddd");}public void eee(){System.out.println("eee");}public static void main(String[] args) {} } interface bbb{void bbb();} interface ccc {void ccc(); } interface ddd extends ccc,bbb{//這里可以繼承多個接口void ddd(); } interface eee {void eee(); }

3.抽象類和接口的區(qū)別

1.抽象類可以有構(gòu)造方法,但接口沒有
2.抽象類可以有普通的成員變量,接口中沒有普通成員變量
3.抽象類可以有非抽象方法接口全是抽象方法
4.抽象類的抽象方法的訪問權(quán)限可以是非private的另外三個但是接口只能是public
5.抽象類中可以包含靜態(tài)方法接口中不能包含
6.一個類只能繼承一個抽象類,一個類可以實現(xiàn)多個接口
7.抽象類和接口都能包含靜態(tài)成員變量但接口里邊只能是public static final,而且接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法,而抽象類可以有靜態(tài)代碼塊和靜態(tài)方法;

總結(jié)

以上是生活随笔為你收集整理的深入java抽象类和接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。