首頁 >後端開發 >Python教學 >python中繼承有什麼用法? python繼承的用法詳解

python中繼承有什麼用法? python繼承的用法詳解

不言
不言原創
2018-09-15 18:03:033157瀏覽

這篇文章帶給大家的內容是關於python中繼承有什麼用法? python繼承的用法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

物件導向三大特徵
   1.封裝:根據職責將屬性和方法封裝到一個抽象的類別中
   2.繼承:實作程式碼的重複使用,相同的程式碼不需要重複的寫入
   3.多型別
單繼承
繼承的概念:子類別擁有父類別的所有屬性和方法
繼承的語法
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 '我可以说日语'
# 创建一个猫对象
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 '欧哈有~空你起哇'
        # 调用原本在父类中封装的代码
        Cat.call(self)
        # 增加其他的子类代码
        print '#!@$@!#!#'
kt = Hellokitty()
# 如果子类中,重写了父类的方法
# 在运行中,只会调用在子类中重写的父类的方法而不会调用父类的方法
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.sound
littlebird = 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
# 创建子类对象
c = C()
c.test()
c.demo()

相關推薦:

Python中的單繼承與多繼承

python類別的繼承是什麼?類別的繼承有什麼樣的規則?

以上是python中繼承有什麼用法? python繼承的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn