Java學習筆記 三 Java中父類與子類的關係

2021-09-09 08:00:45 字數 1966 閱讀 7146

假如定義了乙個遊戲角色類,擁有血量,角色名,攻擊力等基礎屬性。對不同的角色型別都具有這樣的屬性,都歸屬為角色類,若想在以上基礎屬性上新加乙個具有新屬性或者新方法的具體角色類(比如魯班),只需要在定義魯班類的時候讓魯班繼承遊戲角色類。

格式是:

public class luban extends player{}
這樣luban就繼承到player中定義的屬性和方法,如果子類中沒有定義新函式或者重寫函式。那麼在主函式中建立子類的時候就呼叫子類物件的方法時用到的就是父類的方法和屬性。

自動轉型:子型別轉換為父類 

player p1=new luban();
強制轉型:父類轉換成子類

luban play1=(luban) p1;
子類自動轉成父類物件之後,想要呼叫子類特有方法就必須要強制轉型。

乙個物件在沒有自動轉型之前不能強制轉型!

player父類:

package mo.extend;

public class player

public string getname()

public void setblood(int s)

public int getblood()

public void setattack(int a)

public int getattack()

public void attack()

public void attack(player a)

}

luban類:

package mo.extend;

public class luban extends player

}

yase類:

package mo.extend;

public class yase extends player

}

boss類:

package mo.extend;

public class boss extends player

public void attack()

public void attack(player a,player b)

}

主函式:

package mo.extend;

public class main

}}

輸出結果:

null正在攻擊null

null的血量為100

null正在攻擊null

null的血量為100

魯班發起攻擊!

亞瑟發起攻擊!

boos被動發起攻擊!

魯班正在攻擊boss

boss的血量為990

亞瑟正在攻擊boss

boss的血量為975

boss正在攻擊魯班和亞瑟

魯班的血量為70

亞瑟的血量為70

魯班正在攻擊boss

boss的血量為965

亞瑟正在攻擊boss

boss的血量為950

boss正在攻擊魯班和亞瑟

魯班的血量為40

亞瑟的血量為40

魯班正在攻擊boss

boss的血量為940

亞瑟正在攻擊boss

boss的血量為925

boss正在攻擊魯班和亞瑟

魯班的血量為10

亞瑟的血量為10

魯班正在攻擊boss

boss的血量為915

亞瑟正在攻擊boss

boss的血量為900

boss正在攻擊魯班和亞瑟

魯班的血量為-20

亞瑟的血量為-20

Java學習筆記(三)

物件導向高階 集合和例外都是物件導向的核心內容。物件導向高階 修飾符 static 可修飾變數 屬性 可修飾方法 可修飾 塊。static int data語句說明data為類變數,為乙個類的共享變數,屬於整個類。int data為例項變數。例 static int data m1.data 0 m...

java 學習筆記 物件導向(子父類)

子父類成員,變數 函式 建構函式 1 變數 如果子類中出現非私有的同名變數時,子類要訪問本類中的變數,用this。子類要訪問父類中的同名變數,用super。super的使用和this的使用幾乎一致。this代表的是本類物件的引用。super代表的是父類物件的引用 2 函式 當子類出現和父類一模一樣的...

java 學習筆記 陣列(三)

標籤 在電腦科學中,陣列資料結構 英語 array data structure 簡稱陣列 英語 array 是由相同型別的元素 element 的集合所組成的資料結構,分配一塊連續的記憶體來儲存。利用元素的索引 index 可以計算出該元素對應的儲存位址。靜態初始化基本型別 int array 靜...