繼承:
父類別 <-> 子類別(可繼承父類別的屬性和方法,在Python中可指定父類別)
範例:創建動物父類別,三個子類別
class Animal:
alive = True
def eat(slef):
print("這動物正在吃東西")
def sleep(slef):
print("這動物正在睡覺")
#兔子
Class Rabbit(Animal):
def jump(slef):
print("這隻兔子正在跳")
animal = Animal()
animal.eat()
animal.sleep()
rabbit = Rabbit()
rabbit.jump()
這動物正在吃東西
這動物正在睡覺
這隻兔子正在跳
因為兔子繼承了動物,因此他可使用動物的屬性
class Animal:
alive = True
def eat(slef):
print("這動物正在吃東西")
def sleep(slef):
print("這動物正在睡覺")
#兔子
Class Rabbit(Animal):
def jump(slef):
print("這隻兔子正在跳")
rabbit = Rabbit()
rabbit.jump()
rabbit.eat()
這隻兔子正在跳
這動物正在吃東西
另外新增兩個子類別
class Animal:
alive = True
def eat(slef):
print("這動物正在吃東西")
def sleep(slef):
print("這動物正在睡覺")
#兔子
class Rabbit(Animal):
def jump(slef):
print("這隻兔子正在跳")
#魚
class Fish(Animal):
def swim(slef):
print("魚正在游泳")
#老鷹
class Hawk(Animal):
def fly(self):
print("老鷹正在飛")
fish = Fish()
fish.swim()
fish.eat()
Hawk = Hawk()
hawk.sleep()
hawk.fly()
魚正在游泳
這動物正在吃東西
這動物正在睡覺
老鷹正在飛
重寫Overriding(物件導向特性)
ex:父類別可以定義方法,但子類別也有權利重寫
class Animal:
def eat(slef):
print("動物正在吃東西")
class Rabbit(Animal):
def eat(slef):
print("兔子正在吃紅蘿蔔")
animal = Animal()
animal.eat()
rabbvit = Rabbit()
rabbit.eat()
動物正在吃東西
兔子正在吃紅蘿蔔
範例:在動物(父類別)以及貓狗(子類別)中間增加哺乳類
class Animal:
def eat(slef):
print("動物正在吃東西")
#哺乳類 Mammal
class Mammal():
def hi(slef):
print("我是哺乳類")
pass
#貓 Cat
class Cat(Mammal):
def eat(slef):
print("貓正在吃魚")
#狗 Dog
class Dog(Mammal):
def eat(slef):
print("狗正在啃骨頭")
cat = Cat()
cat.eat()
dog = Dog()
dog.eat()
mammal = Mammal()
mammal.eat()
貓正在吃魚
狗正在啃骨頭
動物正在吃東西