Python的基礎語法 10 面向物件的三大特性
阿新 • • 發佈:2018-12-12
面向物件的三大特性: 封裝 是對屬性和方法的封裝 封裝實際上是對內層資料的一種保護--資料隱藏 封裝粒度: 粒度太小:過程過於複雜,沒有必要 粒度太大:沒有意義,不能顯示出程式的各司其職 繼承 特性: 繼承另一個類的屬性和方法 繼承體現了程式擴充套件性 建立形式: class 類名(父類名): pass e.g.: class Animal: hair='yellow' def eat(self): print("i am hungry") class Dog(Animal): pass dog1=Dog() dog1.eat() print(dog1.hair) 繼承問題 父類的非私有成員可以被子類繼承 如果子類沒有構造方法,則會繼承父類構造方法 如果子類有構造方法,則會呼叫自己的構造方法 python是支援多繼承的 如果子類要呼叫父類的構造方法: 1.用 父類名.__init__(self)的形式 2.super().__init__()可以解決菱形問題 不需要self 3.super(子類,self).__init__()也可以解決菱形繼承問題 class A: def __init__(self): print("A") class B(A): #子類如何呼叫父類構造方法 def __init__(self): A.__init__(self) print("B") class C(A): def __init__(self): print("C") class D(B,C): def __init__(self): print("D") b=B() 多型 多型--多種形態 多型性--當子類接收到同一條指令的時候會發出不同的行為 class Animal: def talk(self): print("animal talk") class Cat(Animal): def talk(self): print("Meow") class Dog(Animal): def talk(self): print("Bark") class Fox(Animal): def talk(self): print("Dddddd")