07 繼承與訪問修飾符

2021-09-24 04:43:24 字數 2520 閱讀 6847

物件導向的程式設計帶來的主要好處之一是**的重用,實現這種重用的方法之一是通過繼承機制。通過繼承建立的新類稱為子類或派生類,被繼承的類稱為基類、父類或超類

class

animal()

:# 特殊方法,主要完成物件建立賦值

def__init__

(self, age)

:# 下劃線開始和結束的方法,屬性我們稱為特殊方法和特殊屬性

# 單下劃線開始受保護的屬性或者方法(本身和子類才能訪問),雙下劃線開始則私有屬性(自己才能訪問)

self.age = age

defshow

(self)

:print

(f'年齡為:'

)# 定義子類(dog),它繼承動物類, python支援多繼承

class

dog(animal)

:# 子類可能也有自己的屬性

def__init__

(self, name, age)

:# super代表的是被繼承的父類

# 父類的屬性要通過父類初始化方法來完成

super()

.__init__(age)

self.name = name

# 如果當前模組主模組,則返回為__main__,否則返回當前模組路徑

if __name__ ==

"__main__"

: animal = animal(10)

animal.show(

)# 建立乙個子類的物件

dog = dog(

'旺財',3

)# 子類的物件無條件使用父類的方法,但是父類方法並不能輸出name屬性值

dog.show(

)

如果你的父類方法的功能不能滿足你的需求,你可以在子類重寫你父類的方法

# 定義子類(dog),它繼承動物類, python支援多繼承

class

dog(animal)

:# 子類可能也有自己的屬性

def__init__

(self, name, age)

:# super代表的是被繼承的父類

# 父類的屬性要通過父類初始化方法來完成

super()

.__init__(age)

self.name = name

# 如果父類的方法不適合子類,則子類可以重新定義(重寫)

# 子類的方法名稱,引數都必須和父類相同

# 根據就近原則

defshow

(self)

:print

(f'年齡為:,姓名為:'

)# 如果當前模組主模組,則返回為__main__,否則返回當前模組路徑

if __name__ ==

"__main__"

:# 建立乙個子類的物件

dog = dog(

'旺財',3

)# 子類的物件無條件使用父類的方法

dog.show(

)# 年齡為:3,姓名為:旺財

那種僅限從乙個物件內部訪問的「私有」例項變數在 python 中並不存在。 但是,大多數 python **都遵循這樣乙個約定:帶有乙個下劃線的名稱 (例如 _age) 則是受保護的屬性,只有當前類和子類可以訪問

class

animal()

:# 特殊方法,主要完成物件建立賦值

def__init__

(self, age)

:# 單下劃線開始受保護的屬性或者方法(本身和子類才能訪問),雙下劃線開始則私有屬性(自己才能訪問)

self._age = age

defshow

(self)

:print

(f'年齡為:'

)# 定義子類(dog),它繼承動物類, python支援多繼承

class

dog(animal)

:# 子類可能也有自己的屬性

def__init__

(self, name, age)

:# super代表的是被繼承的父類

# 父類的屬性要通過父類初始化方法來完成

super()

.__init__(age)

self.name = name

# 如果父類的方法不適合子類,則子類可以重新定義(重寫)

# 子類的方法名稱,引數都必須和父類相同

# 根據就近原則

defshow

(self)

:print

(f'年齡為:,姓名為:'

)# 如果當前模組主模組,則返回為__main__,否則返回當前模組路徑

if __name__ ==

"__main__"

:# 建立乙個子類的物件

dog = dog(

'旺財',3

)# 子類的物件無條件使用父類的方法

dog.show(

)# 年齡為:3,姓名為:旺財

7 訪問修飾符與非訪問修飾符

訪問修飾符 訪問級別從高到底 public 公共的被所有的類使用 protected 受保護的 只能在同包下的類或不同包下的子類使用 預設不寫 只能在同包下的類使用 private 私有的被 private 修飾的只能在本類中使用一旦出了該類其他類不能使用 非訪問修飾符 static1.被 stat...

訪問修飾符

訪問修飾符 可以限制類和結構,以便只有宣告它們的程式或命名空間才能使用它們。可以限制類成員,以便只有派生類才能使用它們,或者限制類成員,以便只有當前命名空間或程式中的類才能使用它們。訪問修飾符是新增到類 結構或成員宣告的關鍵字,用以指定這些限制。這些關鍵字包括 使用這些訪問修飾符可指定下列五個可訪問...

訪問修飾符

前面我們已經看到並運用了訪問修飾符,現在我們來進一步的掌握。類成員支援五種訪問修飾 訪問不受限制 public 公共的 訪問範圍限定於它所屬的類或從該類派生的型別 protected 保護的 訪問範圍限定於此程式 internal 內部的 訪問範圍限定於此程式或那些由它所屬的類派生的型別 prote...