python的继承用法_python中继承有什么用法?python继承的用法详解
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于python中繼承有什么用法?python繼承的用法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
面向?qū)ο笕筇卣?/p>
1.封裝:根據(jù)職責(zé)將屬性和方法封裝到一個抽象的類中
2.繼承:實現(xiàn)代碼的重用,相同的代碼不需要重復(fù)的寫
3.多態(tài)
單繼承
繼承的概念:子類擁有父類的所有屬性和方法
繼承的語法
class 類名(父類):
def 子類特有的方法
"""
"""
Cat類是Animal類的子類,Animal類是Cat類的父類,Cat從Animal類繼承
Cat類是Animal類的派生類,Animal類是Cat類的基類,Cat類從Animal類派生
"""
1.class Animal(object):
def eat(self):
print '吃'
def drink(self):
print '喝'
def run(self):
print '跑'
def sleep(self):
print '睡'class Cat(Animal):
# 子類擁有父類的所有屬性和方法
def call(self):
print '喵喵'
class Dog(Animal):
def bark(self):
print '旺旺'
class Hellokitty(Cat):
def speak(self):
print '我可以說日語'# 創(chuàng)建一個貓對象
fentiao = Cat()
fentiao.eat()
fentiao.drink()
fentiao.run()
fentiao.sleep()
fentiao.call()
2.
重寫父類方法
1.覆蓋父類的方法
2.擴展父類的方法
"""class Animal:
def eat(self):
print '吃'
def drink(self):
print '喝'
def run(self):
print '跑'
def sleep(self):
print '睡'class Cat(Animal):
# 子類擁有父類的所有屬性和方法
def call(self):
print '喵喵'class Hellokitty(Cat):
def speak(self):
print '我可以說日語'
def call(self):
# 針對子類特有的需求,編寫代碼
print '歐哈有~空你起哇'
# 調(diào)用原本在父類中封裝的代碼
Cat.call(self)
# 增加其他的子類代碼
print '#!@$@!#!#'
kt = Hellokitty()
# 如果子類中,重寫了父類的方法
# 在運行中,只會調(diào)用在子類中重寫的父類的方法而不會調(diào)用父類的方法
kt.call()
3.class Bird:
def __init__(self):
self.hungry = True
# 鳥吃過了以后就不餓了
def eat(self):
if self.hungry:
print 'Aaaaahhh...'
self.hungry = False
else:
print 'No thanks'class SongBird(Bird):
def __init__(self):
self.sound = 'Squawk!'
Bird.__init__(self)
def sing(self):
print self.soundlittlebird = SongBird()
littlebird.eat()
littlebird.sing()
4.class A:
def test(self):
print 'A-----test 方法'
def demo(self):
print 'A-----demo 方法'
class B:
def test(self):
print 'B------test 方法'
def demo(self):
print 'B-------demo方法'
class C(B,A):
"""多繼承可以讓子類對象,同時具有多個父類的屬性和方法"""
pass# 創(chuàng)建子類對象
c = C()
c.test()
c.demo()
相關(guān)推薦:
總結(jié)
以上是生活随笔為你收集整理的python的继承用法_python中继承有什么用法?python继承的用法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 袁亚湘院士谈如何做好研究生:要逼着自己去
- 下一篇: 你愿意隐姓埋名一辈子吗?