java繼承中關於覆蓋方法和子類構造器

2021-09-24 09:27:22 字數 1718 閱讀 3713

覆蓋方法

1.在父類中一些方法並不適合子類所以用新的方法來覆蓋.

本文用people類和student類進行解釋

定義父類people

public class people 

public void setname(string name)

public string get***()

public void set***(string ***)

public int getage()

public void setage(int age)

public void run()

public people(string name, string ***, int age)

public people()

@override

public string tostring() ';

}}

定義子類student

public class student extends people

public void setstudentnum(string studentnum)

public string getschool()

public void setschool(string school)

public void run()

public student(string studentnum, string school,string name,string age,int ***)

public student()

@override

public string tostring() '+super.tostring();

}}

在main函式值中student物件呼叫run()是student類中的方法.

student student=new student("22222","你的大學","小明","女",5);

student.run();

但是很多方法都可能要用到父類people中的私有成員變數而子類得不到如tostring方法

people中的tostring方法

public string tostring() ';

student中的tostring方法

public string tostring() '}

因為無法的到父類people中的私有成員變數所以得不到想要的name *** age .而且呼叫父類中get方法來賦值會和子類中get方法覆蓋,從而get方法被無限呼叫.在這種情況下我們引入了關鍵字super,super.get();呼叫的是父類裡面的方法,也可以呼叫裡面的變數.

在子類中的構造方法中加上super(父類的變數域)就可以實現對超類的構造器的呼叫`

public people(string name, string ***, int age) 

public student(string studentnum, string school,string name,string age,int ***)

student student=new student("22222","你的大學","小明","女",5);

super呼叫構造器必須是子類構造器的第一條語句

Java中的繼承 過載 覆蓋

第一節 繼承的概念 1.1.1 為什麼使用繼承 使乙個類的資料成員和成員方法可以被另乙個類 派生類或子類 重用。繼承的特性實現了真正意義上的 復用,子類可以從父類繼承所有非private的資料成員和成員方法,以體現其共性。在子類中也可以新定義一些自己特有的資料成員和成員方法,以體現其個性。1.1.2...

複習筆記 Java中 關於方法覆蓋的總結

1.子類方法不能縮小父類方法的訪問許可權。舉例 2.子類方法不能丟擲比父類方法更多的異常。3.方法覆蓋只存在於子類和父類之間。在同乙個類中方法只能過載,不能被覆蓋。4.父類的靜態方法不能被子類覆蓋為非靜態方法。5.子類可以定義與父類的靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方 法 但是子類...

JAVA思想 繼承的方法覆蓋的作用

在繼承後,如果子類和父類中有同名的方法,子類呼叫同名的方法後,呼叫的是子類自己的方法,這就叫做覆蓋。當我們開發時,原有的父類 a類功能已經不夠強了,我們需要對他進行功能修改,但又不能改動他的 因此我們可以用b類繼承a類,然後在b類中重寫a類的功能方法,達到不修改a類就能改動a類功能的目的。注意 為什...