java(3) 物件導向

2021-09-07 12:46:41 字數 2253 閱讀 1095

1.super關鍵字

* 使用super關鍵字呼叫父類的成員變數和成員方法。具體格式:

super.成員變數

super.成員方法([引數1,引數2...])

* 使用super關鍵字呼叫父類的構造方法。具體格式:

super([引數1,引數2...])

* 通過super呼叫父類構造方法的**必須位於子類構造方法的第一行,並且只能出現一次。

* 子類的構造方法中一定會呼叫父類的某個構造方法。如果沒有指定呼叫父類的某個構造方法,在例項化子類物件時,會自動呼叫父類無參的構造方法。

2.final關鍵字

* final類 使用final來修飾的類叫作final類。final類通常功能是完整的,它們不能被繼承。

* final方法 方法不可以被子類的方法重。final方法比非final方法要快,因為在編譯的時候已經靜態繫結了,不需要在執行時再動態繫結。

* final變數 經常和static關鍵字一起使用,作為常量。final變數只能賦值一次,是唯讀的。

* final 修飾陣列或其他物件,則物件位址不可變,但內容還可變

3.抽象類

* 抽象方法 它只有宣告而沒有具體的實現。宣告格式為:abstract void fun();

* 抽象類 使用 abstract 關鍵字修飾的類為抽象類

--抽象方法必須為public或者protected(因為如果為private,則不能被子類繼承,子類便無法實現該方法),預設情況下預設為public

--抽象類不能用來建立物件

--抽象類同樣可以擁有成員變數和普通的成員方法

--繼承抽象類的子類,必須實現父類的抽象方法。如果子類沒有實現父類的抽象方法,則必須將子類也定義為為abstract類

4.介面

*介面中的變數會被隱式地指定為public static final變數,並且只能是public static final變數

*介面中的方法會被隱式地指定為public abstract方法,並且只能是public abstract方法

*非抽象類遵循了某個介面,就必須實現該介面中的所有方法。對於遵循某個介面的抽象類,可以不實現該介面中的抽象方法

5.抽象類與介面區別

* *

6.多型

* 在同乙個方法中,由於引數型別的不同而導致執行效果各異的現象就是多型

* 使用乙個父類型別的變數來引用乙個子類型別的物件,根據被引用子類物件的不同,得到不同的效果。例如:

//定義介面 animal

inte***ce animal

//定義 cat 類 實現animal介面

class cat implement animal

}//定義 dog 類實現animal介面

class dog implement animal

}

//定義測試類

public class exampletest()

//定義靜態的animalshout()方法,接收乙個animal型別引數

public static void animalshout(animal an)

}

* 將子類物件當作父類使用時不需要任何顯示地宣告,但不能通過父類變數去呼叫子類中的某些方法(子類中存在,父類中不存在的方法)。

//定義介面 animal

inte***ce animal

//定義 cat 類 實現animal介面

class cat implement animal

//定義sleep()方法

public void sleep()

}//定義測試類

public class exampletest()

//定義靜態的animalshout()方法,接收乙個animal型別引數

public static void animalshout(animal an)

}

--當編譯器檢查到**an.sleep()時,發現animal類中沒有定義sleep()方法而報錯。由於傳入的物件是cat型別,在cat類中定義了sleep()方法,通過cat型別的物件呼叫sleep()方法是可行的,

因此可以在animalshout()方法中將 animal型別的變數強轉為cat型別。**具體修改為:

//定義靜態的animalshout()方法,接收乙個animal型別引數

public static void animalshout(animal an)

初識java(3)異常

throws e1,e2,e3只是告訴程式這個方法可能會丟擲這些異常,方法的呼叫者可能要處理這些異常,而這些異常e1,e2,e3可能是該函式體產生的。throw則是明確了這個地方要丟擲這個異常。throw語句用在方法體內,表示丟擲異常,由方法體內的語句處理。throws語句用在方法宣告後面,表示再丟...

java 3種簡單的排序

1.氣泡排序 public class testsort bubblesort a 靜態方法中直接通過類名呼叫靜態方法,或者通過物件去呼叫非靜態的方法 for int i 0 i i j insertsort array for int i 0 i 1 a j 1 tmp a j tmp 每乙個a ...

開始學習java3 輸入輸出流

inputstrem outputstem 結尾的流類 一次檢查1個位元組。read wridt 結尾的流類 一次檢查2個位元組 即乙個字元。流在輸入輸出結束之後 利用close 的方法結束流的傳輸。system.exit 1 退出程式。public class hello a.close c.cl...