java中,實現介面的方法的過程是重寫嗎

2021-03-19 18:29:30 字數 5798 閱讀 8193

1樓:匿名使用者

重寫1、必須是在繼承裡,

2、方法名、返回值型別、引數個數和引數型別 都必須相同3、派生類重寫的方法的訪問許可權不能低於基類的許可權首先介面就不是一個類,實現一個介面也不是繼承關係。所以不能稱之為重寫。只能稱之為實現。

2樓:匿名使用者

是重寫(更準確的應該說是實現)。

解釋:介面類中定義的都是抽象方法,沒有實現,所以當有介面被繼承後,必須實現介面類中的所有構造方法,這個過程就是重寫介面方法,之後可以重新填寫方法內容,但是方法的名,引數型別和個數、引數返回值型別不能改變。

3樓:匿名使用者

我認為不是,eclipse 報錯,也說明不是。

重寫,你寫過了(方法體),我再來寫一邊。

實現介面,你既然沒寫過(方法體),我來寫,又何來重寫之說。

4樓:匿名使用者

方法重寫是指在子類中重寫父類的非final 方法

所以,你的就錯了

5樓:洪雷奧

方法重寫是在方法已經實現的基礎上完成的。@override類似的命令不要亂用。

java中,一個類實現某個介面,必須重寫介面中的所有方法嗎???

6樓:青鳥中關村專家

不一定,關鍵要看子類是否是抽象類。

如果子類是非抽象類,則必須實現介面中的所有方法;

如果子類是抽象類,則可以不實現介面中的所有方法,因為抽象類中允許有抽象方法的存在!

1、抽象類定義

抽象類往往用來表徵對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。通常在程式設計語句中用 abstract 修飾的類是抽象類。在c++中,含有純虛擬函式的類稱為抽象類,它不能生成物件;在java中,含有抽象方法的類稱為抽象類,同樣不能生成物件。

抽象類是不完整的,它只能用作基類。在物件導向方法中,抽象類主要用來進行型別隱藏和充當全域性變數的角色。

2、抽象類特點

1)抽象類不能例項化。

2)抽象類可以包含抽象方法和抽象訪問器。

3)不能用 sealed 修飾符修飾抽象類,因為這兩個修飾符的含義是相反的。 採用 sealed 修飾符的類無法繼承,而 abstract 修飾符要求對類進行繼承。

4)從抽象類派生的非抽象類必須包括繼承的所有抽象方法和抽象訪問器的實際實現。

3、與具體類的比較

1)抽象類不能直接例項化,並且對抽象類使用 new 運算子會導致編譯時錯誤。雖然一些變數和值在編譯時的型別可以是抽象的,但是這樣的變數和值必須或者為 null,或者含有對非抽象類的例項的引用(此非抽象類是從抽象類派生的)。

2)允許(但不要求)抽象類包含抽象成員。

3)抽象類不能被密封。

4、與介面的比較

1)相同點

a、不能例項化;

b、包含未實現的方法宣告;

c、派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員(不僅是方法包括其他成員)

2)不同點

a、類可以實現無限個介面,但僅能從一個抽象(或任何其他型別)類繼承,從抽象類派生的類仍可實現介面,從而得出介面是用來解決多重繼承問題的。

b、抽象類當中可以存在非抽象的方法,可介面不能,且它裡面的方法只是一個宣告必須用public來修飾沒有具體實現的方法。

c、抽象類中的成員變數可以被不同的修飾符來修飾,可介面中的成員變數預設的都是靜態常量(static final)。

d、抽象類是物件的抽象,然而介面是一種行為規範。

7樓:匿名使用者

樓主,先宣告一點,javax.swing基本是過時的,屬於前臺的工作,現在前臺基本都是定製的,java程式設計只要關注後臺就可以,不過你問的介面問題倒是很重要的,給你解釋以下,java中類和介面的設計完全體現了java語言的一些設計思想,比如物件導向,繼承、多型等

1 介面的設計解決了java只能單繼承的缺點,可以實現多個介面來實現java的多繼承

2 實現某個介面必須覆寫其中的所有方法,當然也可以是一個空的實現(方法體為空沒有任何作用)

3 樓主也許會問了空實現有什麼用呢,這就是java的特殊設計,通常的是介面在最上面,下面會有一個這個介面的實現類,有時候這個實現類也是一個空的實現,沒有任何方作用!!!程式設計人員只需要實現那個空的方法,覆寫其中自己需要方法的就可以了~~

為什麼要這樣做呢?原因就是介面是一個抽象的概念,與具體的底層、實現都無關,打個比方,現在的網路程式設計都是與http協議相關的,如果將來有新的協議出現就只要實現這個介面就可以了,完全不用做任何修改就可以把新的協議容納進來

總結一下,介面就是一個物體的抽象,規定了這個物體所有的行為方法,與具體的實現無關,這正體現了抽象的概念~~

8樓:極品飛刀進化版

抽象類可以不用

普通類必須

9樓:匿名使用者

哈哈,這是api文件的問題,你沒看過java原始碼,原始碼中實現的方法比這多,只是api沒寫全。要學會看原始碼!!!!

10樓:深圳海楓科技****

是的,需要全部實現

介面的特點:

1、用 inte***ce 來定義。

2、介面中的所有成員變數都預設是由public static final修飾的。

3、介面中的所有方法都預設是由public abstract修飾的。介面沒有構造方法。

4、實現介面的類中必須提供介面中所有方法的具體實現內容。

5、多個無關的類可以實現同一個介面

6、一個類可以實現多個無關的介面

7、與繼承關係類似,介面與實現類之間存在多型性8、介面也可以繼承另一個介面,使用extends關鍵字。

9、下圖是我們的教案中的擷取

java裡實現一個介面的類必須要實現介面裡的所有方法嗎

11樓:

一、實現介面或繼承抽象類的非抽象子類必須實現介面的所有方法或抽象類的所有抽象方法。

介面中的所有方法均為抽象方法,抽象類中包含非抽象方法和抽象方法。如果一個非抽象子類實現了介面,那麼該子類必須實現父介面的所有方法。如果一個非抽象子類繼承了抽象類,那麼該子類必須實現抽象類的所有抽象方法。

二、實現方案

(一)實現介面

1. 定義介面

/*** 介面:表示人類行為

*/inte***ce behavor

2. 定義子類,實現介面

/*** 子類:表示人類,實現「行為」介面*/class person implements behavor//實現介面的抽象方法

@override

public void eat()

//實現介面的抽象方法

@override

public void sleep()

}3. 定義呼叫類,呼叫方法

public class main

}(二)繼承抽象類

1. 定義抽象類

/*** 抽象類:表示人類

*/abstract class person/*** 抽象方法:吃飯

*/public abstract void eat();

/*** 抽象方法:睡覺

*/public abstract void sleep();

}2. 定義子類,繼承抽象類

/*** 子類:學生類

*/class student extends person//實現抽象類的抽象方法

@override

public void eat()

//實現抽象類的抽象方法

@override

public void sleep()

}3. 定義呼叫類,呼叫方法

public class main}

12樓:sunny鞦韆墜

如果是抽象類要實現介面,可以實現部分或者一個都不實現就行,要是具體類就必須實現所有的方法

13樓:匿名使用者

實現介面或繼承抽象類的子類必須實現介面的所有方法或抽象類的所有抽象方法。

實現方案:

14樓:wzz頓悟

a)若一個普通類實現了介面,那麼,該普通類必須實現介面中所有的抽象方法。

b)若一個抽象類實現了介面,那麼,該抽象類可以實現介面中的抽象方法,也可以不實現。

c)若一個普通的子類繼承了抽象父類,該抽象的父類又實現了介面,那麼,該普通的子類必須得重寫,抽象父類中所有的抽象方法,並且,還必須得實現抽象的父類尚未實現的抽象方法。

15樓:匿名使用者

誰說的,預設方法就不需要實現

java如果介面的方法都要重寫,那介面還有什麼意義

16樓:若只如初見

如果只是單個的類繼承單個的介面的話 那肯定沒啥意義但是多個類同時繼承一個介面的話那就不一樣了這也是"介面"這個為什麼叫名字的原因

本來不相關的兩個類繼承了同一介面的話 這兩個類就能產生關聯.通過這個關聯你能實現好多特別的效果 建議你去看看設計模式 裡邊有好多模式都是根據這條設計的

介面還有一個好處是: java語言不支援一個類有多個直接的父類(多繼承),但可以實現(implements)多個介面,間接的實現了多繼承.

介面也可以實現封裝,呼叫者只要呼叫介面,而無需關注它怎麼實現等問題

17樓:匿名使用者

樓主繼續努力啊,再往前一步,你就快明白麵向物件的思想了。介面是物件導向的精華哦…介面的好處就是可以有不同的實現。比如說jdbc,sun只定義了先關介面,然後剩下的實現就給各個資料庫廠商。

一樣的做法還有很多

18樓:笑年

類繼承的介面的方法肯定都要重寫,

而有些類返回的介面卻是已重寫過了,不用再重寫,這就是區別。

對於自已不感興趣的方法,可以使用空的結合體,如void a(){}

19樓:匿名使用者

介面還有一個好處是: java語言不支援一個類有多個直接的父類(多繼承),但可以實現(implements)多個介面,間接的實現了多繼承.

介面也可以實現封裝,呼叫者只要呼叫介面,而無需關注它怎麼實現等問題

20樓:匿名使用者

我定義一個介面可以有多個實現,就拿jdbc來說,我們呼叫的都是sun定義的介面,但對於不同的資料庫我們都要引入不同包,而這些包都是對於介面的實現。

21樓:匿名使用者

這個是為了**的嚴謹 以及方法的重構 畢竟有的方法是不需要你重新的 比如tostring()方法 equals()方法

22樓:

一切都是為了利用多型

23樓:匿名使用者

如果用的是sping的話,注入類就要定義介面

java中為什麼要使用介面,繼承介面不是還要重寫方法嗎?為什麼不直接寫那些方法呢?

24樓:ǒ蒍禰變乖

介面的最主要的作用是達到統一訪問

那麼什麼叫統一訪問呢

舉個例子

你這樣想,我做一個usb介面,有個讀的抽象方法 那叫read()吧,然後***類實現,u盤類實現,行動硬碟類實現,這樣我用的時候用usb a=new 【類名】;這樣a.read();要是我類名裡寫u盤,就讀u盤,寫***就讀***,而這個名字可以從屬性檔案裡讀,你寫哪個就用哪個了

這個就叫統一訪問,因為你實現這個介面的類的方法名相同,但是實現內容不同

我用介面來定義物件不就可以做到統一訪問了嗎?介面主要針對多個類實現它來說的,要是隻有一個類當然可以不用介面了。。。

在Java介面A的實現類B中如何呼叫A中的變數

1.num有歧義 不表示哪一個num 2.會3.介面b的實現類c吧 因為介面中的變數都是public static 的,用b.num試試 1 介面中你寫實現在繼承類?繼承下來當然報錯 the field num is ambiguous 2 介面中的變數 1 會得到但是前提是隻繼承b不能中間加個a ...

Java中抽象類和介面的區別是什麼

介面中的方法只能是定義不可以有實現,而且所有成員預設均為公有的,實現介面時必須實現該介面定義的所有方法。介面可以多重繼承。而抽象類中則可以存在私有成員,方法允許有實現,繼承抽象後可以不去實現該抽象類的抽象方法 java中抽象類和介面的區別 簡單來說,介面是公開的,裡面不能有私有的方法或變數,是用於讓...

當類實現介面時,它必須實現該介面中的所有方法。判斷

對的必須實現該介面中的所有方法。當然 你也可以自定義介面中沒有的方法。下次提問說清楚是什麼。java java裡實現一個介面的類必須要實現介面裡的所有方法嗎?實現介面或繼承抽象類的子類必須實現介面的所有方法或抽象類的所有抽象方法。實現方案 java中 一個類實現了某介面 則必須實現該介面中的所有方法...