天天看點

繼承的使用 | 手把手教你入門Python之六十三

上一篇: 類屬性案例練習 | 手把手教你入門Python之六十二 下一篇: 繼承的注意事項類屬性案例練習 | 手把手教你入門Python之六十四 本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程 《Python入門2020最新大課》 ,主講人姜偉。

繼承的基本使用

面向對象程式設計有三大特性:封裝、繼承、多态。

封裝:打包,函數是對語句的封裝,類是對函數和變量的封裝

# 一個一個的語句
def test():
    a = 23  # 指派語句
    a += 3  # 算數運算符表達式語句
    print('hello')
    print('good')


class Person(object):
    type = '人類'

    def __init__(self):
        pass

    def eat(self):
        pass           

繼承:類和類之間可以人為手動的建立父子關系,父類的屬性和方法,子類可以使用。

在現實⽣活中,繼承⼀般指的是⼦⼥繼承⽗輩的财産,⽗輩有的财産,⼦⼥能夠直接使⽤。

多态:是一種技巧,提高代碼的靈活度。

程式⾥的繼承

繼承是⾯向對象軟體設計中的⼀個概念,與多态、封裝共為⾯向對象的三個基本特征。繼承可以使得⼦類具有⽗類的屬性和⽅法或者重新定義、追加屬性和⽅法等。

繼承的使用 | 手把手教你入門Python之六十三
  • 在程式中,繼承描述的是多個類之間的所屬關系。
  • 如果⼀個類A⾥⾯的屬性和⽅法可以複⽤,則可以通過繼承的⽅式,傳遞到類B⾥。
  • 那麼類A就是基類,也叫做⽗類;類B就是派⽣類,也叫做⼦類。
class Animal:
    def __int__(self):
        pass
    """動物類"""
    def sleep(self):
        print('正在睡覺')


class Dog(Animal):
    """Dog類繼承⾃Animal類"""
    def __init__(self):
        pass


class Cat(Animal): # 定義類時,在括号後⾯傳⼊⽗類的類名,表示⼦類繼承⽗類
    """Cat類繼承⾃Animal類"""
    def __int__(self):
        pass


# Dog 和 Cat 都繼承⾃Animal類,可以直接使⽤Animal類⾥的sleep⽅法
dog = Dog()
dog.sleep()

cat = Cat()
cat.sleep()           
class Animal(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def sleep(self):
        print(self.name + '正在睡覺')


class Dog(Animal):

    def bark(self):
        print(self.name + '正在叫')



class Student(Animal):
    
    def study(self):
        print(self.name + '正在好好學習')


# Dog() 調用 __new__ 方法,再調用 __init__ 方法
# Dog 裡沒有 __new__ 方法,會檢視父類是否重寫了 __new__ 方法
# 父類裡也沒有重寫 __new__ 方法,查找父類的父類(object)

# 調用 __init__ 方法,Dog類沒有實作,會自動找到 Animal 父類,需要添加兩個參數
# d1 = Dog()
# print(d1)  # 出錯
d1 = Dog('大黃', 3)
print(d1.name)  # 大黃  父類裡定義的屬性,子類可以直接使用
d1.sleep()  # 大黃正在睡覺  父類的方法子類執行個體對象可以直接調用
d1.bark()  # 大黃正在叫

s1 = Student('小明', 18)
s1.sleep()  # 小明正在睡覺
s1.study()  # 小明正在好好學習           

配套視訊