国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

static,interface and final

2019-11-14 23:52:08
字體:
來源:轉載
供稿:網友
static,interface and final

1.static:

a)抽象類(abstractclass):使用了abstract關鍵字所修飾的類叫做抽象類。抽象類無法實例化,不能new出來一個抽象類的對象(實例)。

抽象方法(abstractmethod):使用abstract關鍵字所修飾的方法叫做抽象方法。抽象方法需要定義在抽象類中。相對于抽象方法,之前所定義的方法叫做具體方法(有聲明,有實現)。抽象方法只能存在與抽象類和接口中,但是抽象類中可以含有具體方法,接口中只能含有抽象方法。

b)抽象類的繼承:在子類繼承父類(父類是個抽象類)的情況下,那么該子類必須要實現父類中所定義的所有抽象方法;否則,該子類需要聲明成一個抽象類。

c)static修飾屬性:無論一個類生成了多少個對象,所有這些對象共同使用唯一一份靜態的成員變量;一個對象對該靜態成員變量進行了修改,其他對象的該靜態成員變量的值也會隨之發生變化。如果一個成員變量是static的,那么我們可以通過類名.成員變量名的方式來使用它(推薦使用這種方式)。

d)static修飾方法:static修飾的方法叫做靜態方法。對于靜態方法來說,可以使用類名.方法名的方式來訪問。靜態方法只能繼承,不能重寫(Override)。

 1 package eameple; 2 public class Test 3 { 4     public static void main(String[] args) 5     { 6         R r = new R(); 7         r.method(); 8         T t= new R(); 9         t.method();10     }11 }12 13 abstract class T14 {15     16     public static void method()17     {18         System.out.

e)static 代碼塊:靜態代碼塊。靜態代碼塊的作用也是完成一些初始化工作。首先執行靜態代碼塊,然后執行構造方法。靜態代碼塊在類被加載的時候執行,而構造方法是在生成對象的時候執行;要想調用某個類來生成對象,首先需要將類加載到 java 虛擬機上(JVM),然后由 JVM 加載這個類來生成對象。類的靜態代碼塊只會執行一次,是在類被加載的時候執行的,因為每個類只會被加載一次,所以靜態代碼塊也只會被執行一次;而構造方法則不然,每次生成一個對象的時候都會調用類的構造方法,所以 new 一次就會調用構造方法一次。如果繼承體系中既有構造方法,又有靜態代碼塊,那么首先執行最頂層的類的靜態代碼塊,一直執行到最底層類的靜態代碼塊,然后再去執行最頂層類的構造方法,一直執行到最底層類的構造方法。注意:靜態代碼塊只會執行一次。

f)靜態的只能訪問靜態的;非靜態的可以訪問一切。

g)不能在靜態方法中使用this關鍵字。

2.interface

  接口(interface):接口的地位等同于class,接口中的所有方法都是抽象方法。在聲明接口中的方法時,可以使用abstract關鍵字,也可以不使用。通常情況下,都會略掉abstract關鍵字。類可以實現接口,實現使用關鍵字implements表示,代表了某個類實現了某個接口。一個類實現了某個接口,那么該類必須要實現接口中聲明的所有方法。如果該類是個抽象類,那么就無需實現接口中的方法了。Java是單繼承的,也就是說某個類只能有唯一一個父類;一個類可以實現多個接口,多個接口之間使用逗號分隔。接口中所聲明的方法都是抽象方法。接口中的方法都是public的。接口中也可以定義成員變量。接口中的成員變量都是public、final、static的。

3.final

  final關鍵字:final可以修飾屬性、方法、類。當一個類被final所修飾時,表示該類是一個終態類,即不能被繼承。當一個方法被final所修飾時,表示該方法是一個終態方法,即不能被重寫(Override)。當一個屬性被final所修飾時,表示該屬性不能被改寫。當final修飾一個原生數據類型時,表示該原生數據類型的值不能發生變化(比如說不能從10變為20);如果final修飾一個引用類型時,表示該引用型不能再指向其他對象了,但該引用所指向的對象的內容是可以發生變化的。

  對于final類型成員變量,一般來說有兩種賦初值方式:在聲明final類型的成員變量時就賦上初值;在聲明final類型的成員變量時不賦初值,但在類的所有構造方法中都為其賦上初值。

一個類不能既是final,又是abstract的。因為abstract的主要目的是定義一種約定,讓子類去實現這種約定,而final表示該類不能被繼承,這樣abstract希望該類可以被繼承而final明確說明該類不能被繼承,兩者矛盾。因此一個類不能既是final的,又是abstract的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长垣县| 天柱县| 安宁市| 安西县| 舒城县| 兴和县| 尚志市| 河西区| 新余市| 满洲里市| 曲松县| SHOW| 绥中县| 宜兴市| 象山县| 巴林右旗| 布尔津县| 朝阳区| 巢湖市| 达州市| 新乡市| 麦盖提县| 射洪县| 郎溪县| 博客| 广宁县| 莎车县| 广平县| 独山县| 石景山区| 内乡县| 莱芜市| 宁阳县| 渝北区| 太白县| 普安县| 四子王旗| 莒南县| 水富县| 逊克县| 大方县|