1. 程式人生 > 其它 >python學習之繼承特性

python學習之繼承特性

python學習之繼承特性。

python學習之繼承特性

概念

繼承特性,面向物件的三大特徵之一。通過繼承從其它類獲取屬性和方法

繼承特性

# 一個類中有方法重複,但又不能實現全部功能
# 通過定義class 類名(父類):繼承父類的所有屬性和方法
class People:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def say_hello(self):
        print('大家好!我的名字叫:',self.name,'我今年',self.age,'歲了。')

wzs = People('wzs',23)
wzs.say_hello()

# Man類繼承父類People的屬性和方法,減少程式碼重複性
# 子類的程式碼可以單獨設定
class Man(People):
    pass

a = Man('chuck',30)
a.say_hello()

# 如果定義類名時沒有定義父類,預設父類為object
# issubclass檢查一個類是否是另外一個類的子類
print(issubclass (Man,object))

方法重寫

在子類中有和父類同名的方法,通過子類建立物件會使用子類的方法
在子類定義__init__()方法覆蓋父類的屬性。

屬性的重寫

# 父類的方法都會被繼承包括特殊方法__init__()
# 1.子類可以重寫__init__方法進行屬性的重寫
# 2.擴充套件父類的屬性。
# super()方法呼叫父類的init
class Animal():
    def __init__(self,name) :
        self.name = name
        

class Dog(Animal):
    def __init__(self,name,weight):
        # super()可以用來獲取當前類的父類
        super().__init__(name)
        self.weight = weight

d = Dog('小白',18)
print(d.name)
print(d.weight)
點點滴滴,積少成多,終有一日能發揮用處。