情況一: 子類完全繼承父類所有的屬性和方法, 自己沒有一點更改.
classperson():
def__init__
(self, name, age):
self.name =name
self.age =age
defrun(self):
print("
跑步!"
)
defeat(self, food):
print("
吃%s!
"%food
)class
student(person):
pass # 用pass佔位, 完全繼承父類的一切, 而且不做任何修改.
stu = student("
tom", 18)
(stu.name, stu.age)
stu.run()
情況二: 子類繼承父類的所有屬性和方法, 而且自己想要增加新的方法.
classperson():
def__init__
(self, name, age):
self.name =name
self.age =age
defrun(self):
print("
跑步!"
)
defeat(self, food):
print("
吃%s!
"%food
)class
student(person):
def drink(self): # 增加父類中沒有的新的方法.
print("喝水!")
stu = student("
tom", 18)
(stu.name, stu.age)
stu.run()
#結果:
#tom 18
#跑步!
#
情況三: 子類繼承自父類, 但是自己想要完全替換掉父類中的某個方法.
classperson():
def__init__
(self, name, age):
self.name =name
self.age =age
defrun(self):
print("
跑步!"
)
defeat(self, food):
print("
吃%!"%food
)class
student(person):
def eat(self): # 重寫父類方法, 將會完全覆蓋掉原來的父類方法.
print("吃東西!")
stu = student("
tom", 18)
(stu.name, stu.age)
stu.run()
stu.eat()
#結果:
#tom 18
#跑步!
#吃東西!
情況四: 子類繼承父類的所有屬性和方法, 並且想在原有父類的屬性和方法的基礎上做擴充套件.
classperson():
def__init__
(self, name, age):
self.name =name
self.age =age
defrun(self):
print("
跑步!"
)
defeat(self, food):
print("
吃%s!
"%food)
class
student(person):
def__init__
(self, name, age, height):
super(student, self).
__init__(name, age) #
對父類屬性進行擴充套件
self.height = height #
super()內的(子類名, self)引數可以不寫
defeat(self, food):
super(student, self).eat(food)
#對父類方法進行擴充套件
print("
再吃乙個!
") #
super()內的(子類名, self)引數可以不寫
stu = student("
tom", 18, 175)
(stu.name, stu.age, stu.height)
stu.run()
stu.eat(
"")
# 再吃乙個!
Python物件導向之繼承
即乙個派生類 derived class 繼承基類 bass class 欄位和方法。繼承也允許把乙個派生類的物件作為乙個基類物件對待。例如,有這樣乙個設計,乙個cat型別的物件派生自animal類,這是模擬 是乙個 is a 關係 例如,cat是乙個animal 繼承實現了 的重用。繼承的基本語法...
Python 物件導向之繼承
繼承是指乙個物件直接使用另一物件的屬性和方法 子承父業 一般是類與類之間的。物件導向程式設計 oop 語言的乙個主要功能就是 繼承 繼承是指這樣一種能力 它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。通過繼承建立的新類稱為 子類 或 派生類 被繼承的類稱為 基類...
python物件導向之繼承
繼承具有傳遞性 當父類方法的實現不能滿足子類的需求的時候 可以對父類方法進行重寫 1.覆蓋父類方法 2.對父類的方法進行擴充套件 class animal def eat self print 吃!def drink self print 喝!def run self print 跑!def sle...