Java特性總結
1.繼承(關鍵字:extends):(子父類別)
1.提高程式碼的複用性。
2.讓類別與類別之間產生了關係。有了這個關係,才有了多態的特性。
1.1變數
如果子父類別中出現非私有的(private)同名成員變數時,子類別要存取本類別中的變量,用this,子類別要存取父類別中的同名變量,用super。
super的使用和this使用幾乎一致。
this代表的是本類別物件的參考。
super代表的父類別物件的參考。
1.2 子父類別中的函數
當子類別出現和父類別一模一樣的函數時,
當子類別物件呼叫函數,就會執行子類別函數的內容。如同父類別的函數被覆蓋一樣。
這種情況是函數的另一個特性:重寫(覆蓋)
當子類繼承父類,沿襲了父類的功能,到子類中,但是子類雖具備該功能,但是功能的內容卻和父類不一致,這時,沒有必要定義新功能,而是使用覆蓋特性,保留父類的功能定義,並重寫功能內容。
覆寫注意事項:
1.子類別覆寫父類,必須保證子類別權限大於等於父類權限,才可以覆寫,否則編譯失敗。 (不寫權限修飾符則是預設權限,介於private和public之間。)
2.靜態只能覆寫靜態。
重載與重寫:
重載:只看同名函數的參數清單。
重寫:子父類別中的方法名稱和傳回型別要一模一樣。 (即:傳回型別 方法名稱() 要一樣)
#1.3 子類別中的建構子。
在對子類別物件進行初始化時,父類別的建構子也會運行,那是因為子類別的建構子預設第一行有一條隱式的語句super();
為什麼子類別一定要存取父類別中的建構子。
因為父類別中的資料子類別可以直接取得,所有子類別物件在建立時,需要先查看父類別是如何對資料進行初始化的。所以子類別在物件初始化時,要先存取一下父類別中的建構子。如果要存取父類別中指定的建構函數,可以透過手動定義super語句的方式來指定。
注意:super語句一定要定義在子類別建構子的第一行。
結論:
子類別的所有的建構函數,預設都會存取父類別中空參數的建構子。
因為子類別每一個建構子內的第一行都會有一句隱式super();
當父類別中沒有空參數的建構子時,子類別必須手動透過super語句形式來指定要存取父類別中的建構子。
當然:子類別的建構子第一行也可以手動指定this語句來存取本類別中的建構子。子類別中至少會有一個建構函式會存取父類別中的建構子。 (因為this()和super()都只能放在建構子的第一行,所以在建構函式中只能存在其中一個。)
注意:千萬不要為了取得其他類別的功能,簡化程式碼而繼承。必須是類別與類別之間有所屬關係才可以繼承。所屬關係 is a 。
2.final:最終。作為一個修飾符。
2.1 可以修飾類,函數,變數。
2.2 被final修飾的類別不可以被繼承。為了避免被繼承,避免被子類別重寫功能。
2.3 被final修飾的方法不能被重寫
2.4 被final修飾的變數是常數只能賦值一次,既可以修飾成員變量,也可以修飾局部變數。當描述事物時,一些資料的出現,值是固定的,那麼這時為了增強閱讀性,都會給這些值取個名字。方便閱讀。而這個值不需要改變,所以加上final修飾。 作為常數:常數的書寫規範所有字母都大寫,如果由多個單字組成。字間通過_連接。 (eg: final double PI = 3.14; final int SET_ON = 1;)
2.5 內部類別定義在類別中的局部位置上時,只能存取該局部被final修飾的局部變數。
3. 抽象:
3.1 抽象方法一定在抽象類別中。
3.2抽象方法和抽象類別都必須被 abstract關鍵字修飾。 (abstract class 類別名稱 { abstract void 方法名稱(); })
3.3抽象類別不可以用new建立物件。因為呼叫抽象方法沒意義。
3.4 抽象類別中的抽象方法要被使用,必須由子類別重寫其所有的抽象方法後,建立子類別物件呼叫。如果子類別只覆寫了部分抽象方法,那麼該子類別還是一個抽象類別。
一般類別和抽象類別的異同:抽象類別和一般類別沒有太大的不同。該如何描述事物,就如何描述事物,只不過,該事物出現了一些看不懂的東西。這些不確定的部分,也是該事物的功能,需要明確出現。但是無法定義主體。透過抽象方法來表示。
抽象類別比一般類別多了個抽象函數。就是在類別中可以定義抽象方法。
抽象類別不可以實例法。
特殊:抽象類別中可以不定義抽象方法,這樣做只是不讓該類別建立物件。
4. 模版設計模式:
在定義功能時,功能的一部分是確定的,但是有一部分是不確定,而確定的部分在使用不確定的部分,那麼這時就將不確定的部分暴露出去。由該類別的子類別去完成。
5.介面:
初期理解,可以認為是一個特殊的抽象類別。當抽象類別中的方法都是抽象的(abstract),那麼該類別可以透過介面的形式來表示。
class :用來定義類別
interface:用來定義介面。介面也是一種類別。可以產生class檔案。
介面定義時,格式特性:
1.介面中常見定義:常數,抽象方法。介面的出現將「多重繼承」透過另一種形式體現出來,即「多重實現」。
2.介面中的成員都有固定修飾符。
常數:public static final
方法:public abstract
記住:介面中的成員都是public的。
介面:是不可以建立物件的,因為有抽象方法(abstract)。需要被子類別實現,子類別對介面中的抽象方法全都重寫後,子類別才可以實例化。否則子類別是一個抽象類別。
eg: interface Inter
{
//public static final 和public abstract修飾符缺少也可以,因為介面中的成員都有固定修飾符。但是開發中最好寫,增強閱讀性。
public static final int SET_ON = 1;
public abstract void show();
}
////使用介面使用介面卡 鐵> public void show (){} //需要重寫抽象方法show,才能建立物件
}
class InterfaceDemo
{
public static void main(String[] args)# public static v t = new Test();
System.out.println(t.SET_ON);
}
}
##」介面的特徵:
對外暴露的規則。介面是程式的功能擴充。
介面可以用來多實作。 類別與介面之間是實作關係,而且類別可以繼承一個類別的同時實作多個介面。
介面與介面之間可以有繼承關係。
6.多態:
定義:某一類事物的多種存在形態。
eg:動物中貓、狗
貓這個物件對應的類型是貓類型
貓x = new 貓();
同時貓也是動物中的一種,也可以把貓稱為動物。
動物 y = new 貓();
動物是貓和狗具體事物中抽取出來的父類型。
父類型參考指向了子類型物件。
6.1.多態的體現:
父類別的參考指向了自己的子類別物件。
父類別的參考也可以接收自己的子類別物件。
eg: 父類別 父類別引用名稱 = new 子類別();//類型提升。向上轉型。要使用子類別特有功能,需要向下轉型:子類別 新子類別參考名稱= (子類別)原父類別引用名稱
關鍵字: instanceof 判斷參考類型
eg: if (a instanceof Cat) //判斷a是不是貓型。
6.2.多態的前提:
必須是類別與類別之間有關係。要么繼承,要么實現。
通常還有一個前提:子類別必須覆寫(重寫)。
6.3.多態的好處:
多態的出現大大的提高了程式的擴展性。
6.4.多態的弊端:
6.5在多態中非靜態成員函數的特點:
在編譯期間:參閱引用型變數所屬的類別中是否有呼叫的方法。如果有,編譯通過,如果沒有,編譯失敗。
在運行時期:參考物件所屬的類別中是否有呼叫的方法。
簡單總結就是:成員函數在多型呼叫時,編譯看左邊,運行看右邊。
6.6在多態中成員變數的特性:
無論編譯和執行,都參考左邊(引用型變數所屬的類別。)
在多態中靜態成員函數的特性:
無論編譯和運行,都參考左邊(static本身就可以直接呼叫)。
7.object:是所有物件的直接或間接父類,傳說中的上帝。
該類別中定義的肯定是所有物件都具備的功能。
內部類別的存取規則:
1.內部類別可以直接存取外部類別中的成員,包括私有。
2.外部類別要存取內部類別,必須建立內部類別物件。
以上是Java特性總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

大家都知道win7系統有很多種版本,像是win7旗艦版、win7專業版、win7家用版等,有不少用戶在家庭版和旗艦版之間糾結,不知道選擇哪個版本比較好,所以今天小編來跟大家說說win7家庭餐與win7旗艦版的差別介紹,大家一起來看看。 1.體驗不同家庭普通版使您的日常操作變得更快、更簡單,可以更快、更方便地存取使用最頻繁的程式和文件。家庭高級版讓您享有最佳的娛樂體驗,可以輕鬆欣賞和分享您喜愛的電視節目、照片、影片和音樂。旗艦版集各版本功能大全,具備Windows7家庭高級版的所有娛樂功能與專

了解SpringMVC的關鍵特性:掌握這些重要的概念,需要具體程式碼範例SpringMVC是一種基於Java的Web應用開發框架,它透過模型-視圖-控制器(MVC)的架構模式來幫助開發人員建立靈活可擴展的Web應用程式。了解和掌握SpringMVC的關鍵特性將使我們能夠更有效地開發和管理我們的網路應用程式。本文將介紹一些SpringMVC的重要概念

隨著網路的快速發展,程式語言也不斷演化和更新。其中,Go語言作為一種開源的程式語言,在近年來備受關注。 Go語言的設計目標是簡單、有效率、安全且易於開發和部署。它具有高並發、快速編譯和記憶體安全等特性,讓它在Web開發、雲端運算和大數據等領域中有著廣泛的運用。然而,目前Go語言也有不同的版本可供選擇。在選擇合適的Go語言版本時,我們需要考慮需求和特性兩個面向。首

在Golang(Go語言)中並沒有傳統意義上的類別的概念,但它提供了一種稱為結構體的資料類型,透過結構體可以實現類似類別的物件導向特性。在本文中,我們將介紹如何使用結構體實現物件導向的特性,並提供具體的程式碼範例。結構體的定義和使用首先,讓我們來看看結構體的定義和使用方式。在Golang中,結構體可以透過type關鍵字定義,然後在需要的地方使用。結構體中可以包含屬

5g的三個特性是:1、高速率;在實際應用中,5G網路的速率是4G網路10倍以上。 2、低時延;5G網路的時延約幾十毫秒,比人的反應速度還要快。 3.廣連結;5G網路出現,配合其他技術,將會打造一個全新的萬物互聯景象。

C++函式有以下型別:簡單函式、const函式、靜態函式、虛函式;特性包括:inline函式、預設參數、參考回傳、重載函式。例如,calculateArea函數使用π計算給定半徑圓的面積,並將其作為輸出傳回。

java的特性是:1、簡單易學;2、面向對象,使得程式碼更可重複使用和維護;3、平台無關性,能在不同的作業系統上運作;4、記憶體管理,透過自動垃圾回收機制來管理記憶體;5、強型別檢查,變數在使用前必須先聲明類型;6、安全性,可以防止未經授權的存取和惡意程式碼的執行;7、多執行緒支持,能提高程式的效能和回應能力;8、異常處理,可以避免程式崩潰;9、大量的開發庫和框架;10、開源生態系統。

Golang作為一門快速、有效率的程式語言,在Web開發領域也有廣泛的應用。其中,中間件作為一種重要的設計模式,能夠幫助開發者更好地組織、管理程式碼,提高程式碼的可重複使用性和可維護性。本文將介紹Golang中中間件的關鍵特性和應用場景,並透過具體的程式碼範例來說明其用法。一、中間件的概念及作用中間件作為一種插入式的元件,位於應用程式的請求-回應處理鏈中,用
