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