繼承的相關概念

2022-07-04 12:33:10 字數 1911 閱讀 4341

package

cn.learn.extend;

/*定義乙個父類 */

public

class

employee

public

void setage(int

age)

public

string getname()

public

void

setname(string name)

public employee(int

age, string name)

public

employee()

public

void

method()

}

package

cn.learn.extend;

/*1. 由employee生成的子類

注意:在子類建立的成員變數/成員方法與父類變數重名時

訪問有兩種方式(非private成員變數時)

直接:通過子類物件訪問成員變數/成員方法(構造方法除外)

等號左邊是誰就優先用誰,若沒有則繼續往上找,絕不會向下找(即物件是哪個類生成的就取誰的)

間接:通過成員方法訪問成員變數

2.重寫(override):在繼承關係中,形參引數列表一樣,方法名一樣,覆蓋掉父類

過載(overload):方法名稱一樣,引數列表不一樣

3.重寫注意事項:子類方法的返回值必須【小於等於】父類方法的返回值

4.重寫注意事項:子類方法的許可權(修飾符)必須【大於等於】父類許可權

@override -有效的重寫註解,起到檢測引數列表是否一致的作用 */

public

class teacher extends

employee

@override

public

void setage(int

age)

private

intage;

//重寫method方法,

//三中變數的呼叫,子類num,區域性num,父類num

@override

public

void

method()

}

package

cn.learn.extend;

/*繼承是多型的前提

子類定義格式

public class 子類名稱 extends 父類名稱{}

繼承中:

構造方法的呼叫是父類的優先於子類,因為子類的構造方法中有乙個預設的"super()",所以構造方法父類優先

但是若父類沒寫無參的構造方法,則預設呼叫會報錯,【這也是標準類有無參構造的原因】

但是可以在子類的構造方法中自己有個有參函式防止報錯,格式「super(引數資料)」

**但是只有子類構造方法才有資格呼叫,且必須是第乙個語句,且只能呼叫一次

子類必須呼叫父類構造方法,不寫則會預設呼叫

super關鍵字用法

1.在子類方法中訪問父類的成員變數

2.在與父類重名的子類方法中呼叫父類方法

3.在子類的構造方法中,訪問父類的構造方法

this關鍵字,是在生成物件之後產生的,低於static

1.this在成員方法中用來訪問本類的成員變數,用於區分成員方法的同名區域性變數

2.在本類的成員方法中訪問本類成員方法,可以省略,用來強調區分父類的同名方法

3.在本類的過載的構造方法中,訪問另乙個構造方法,格式:this(引數資料)

注:3中this必須是第乙個語句且只能呼叫一次,可見this與super無法同時使用,還有一點就是有參的構造不能呼叫無參,會陷入死迴圈 */

public

class

extends

}

c 中與繼承相關的概念

c 中繼承有三種 共有繼承 保護繼承 私有繼承,三個關鍵字分別是 public protected private。每種繼承的訪問許可權不一樣,談到繼承的訪問許可權首先得清楚乙個類中public protected private關鍵字修飾的屬性和方法其對類建立出來的物件的訪問許可權。小結 類的內部...

繼承的基礎概念

繼承是c 中 復用的重要的手段,通過繼承,可以獲得父類的所有功能 子類就是乙個特殊的父類 子類物件可以直接初始化父類物件 子類物件可以直接賦值給父類物件 繼承中的訪問級別 關鍵字protected的意義 為了繼承專門設計的,沒有protected就無法完成真正意義上的 復用 修飾的成員不能被外界直接...

繼承的相關知識

定義 繼承是物件導向復用的重要手段,即物件導向的可重用性是通過 繼承 來實現的。解決在已有的類中增加新的特性,減少重複的工作量的問題。已經存在的類,叫 基類 或 父類 建立的新的類,叫 派生類 或 子類 繼承是型別之間的關係模型,共享公有的東西,實現類內各自不同的東西。繼承的定義格式為 class ...