天天看點

JAVA方法、JAVA接口、抽象類(抽象方法)

一、JAVA方法:

        在Java語言規範中,一個方法的特征僅包括方法的名字,參數的數目和種類,而不包括方法的傳回類型,參數的名字以及所抛出來的異常。在Java編譯器檢查方法的重載時,會根據這些條件判斷兩個方法是否是重載方法。

重寫/覆寫(overriding):必須發生在繼承中

1、覆寫的方法的标志必須要和被覆寫的方法的标志完全比對,才能達到覆寫的效果,也就是要求傳回值、方法名、參數都完全一樣。

2、覆寫的方法的傳回值必須和被覆寫的方法的傳回一緻;

3、覆寫的方法所抛出的異常必須和被覆寫方法的所抛出的異常一緻,或者是其子類;

4、覆寫隻對父類中的非私有方法有效。子類方法的通路權限不能小于父類。

5、final修飾的方法不允許被重寫

6、protect修飾的方法在包内和包外都可以被覆寫。

7、“方法重寫”實作的是運作時多态,也叫動态多态性。

重載(overloading):

1、在使用重載時隻能通過不同的參數樣式。例如,不同的參數類型,不同的參數個數,不同的參數順序(當然,同一方法内的幾個參數類型必須不一樣,例如可以是fun(int,float),但是不能為fun(int,int));

2、不能通過通路權限、傳回類型、抛出的異常這些方式進行重載,也就是這些因素不能構成重載,但是這些元素在重載的方法上是可以不同的。

3、方法的異常類型和數目不會對重載造成影響;

4、重載也可以發生在繼承關系中。

5、“方法重載”實作的是編譯時多态,也就是靜态多态性

二、JAVA接口:

public interface Actionlistener{

         public abstract void actionPerformed(ActionEvent event);

}

1、一個類可以實作多個接口。

2、接口的方法隻能是抽象的、公開的,abstract/public可以省略,還要确定接口的傳回值及參數。接口可以有public、static和final屬性。

3、接口不能有構造器,

4、一個類可以實作多個接口,聲明方式 class son  implements  interfaceName1,interfaceName2{},其實這種聲明的完整表達方式是class son extends Object implements interfaceName1,interfaceName2{}.

5、接口可以包含域,但是這些域不是接口的一部分,它們的值被存儲在該接口的靜态存儲區内;域隐式為public、static、final的(域名通常大寫且單詞之間以下劃線連接配接),域不能是“空final”,在使用之前必須顯式地初始化,但可以被非常量表達式初始化。

6、如果一個類實作了一個接口,而沒有實作接口的所有方法,則它必須被标注為abstract(抽象類)。一個抽象類的子類必須實作它未完成的方法,假如該項子類仍不會實作接口的所有方法,那麼該項子類依然需要被标注為abstract。

三、抽象類:含了抽象方法的一個類叫作“抽象類”。

        即使不包括任何abstract 方法,亦可将一個類聲明成“抽象類”。如果一個類沒必要擁有任何抽象方法,而且我們想禁止那個類的所有執行個體,這種能力就會顯得非常有用。

繼續閱讀