zoukankan      html  css  js  c++  java
  • python,继承

      面向对象的特征之一继承。通俗点讲就是儿子会继承父亲的财产。在开发中讲解就是子类会继承父类(也有叫超类、基类)的所有方法。

      在Python中子类继承父类只需要用()将父类放进去即可,如class Dog(Dnimal[,Dnimal1...]),可以多继承

    class Fish:
        def __init__(self):
            print("首先你得是一只鱼")
        def swim(self):
            print("游来游去")
        def eat(self):
            print("吃吃吃")
    
    class GoldFish(Fish):
        pass #啥也没有
    
    class Salmon(Fish):
        pass
    
    class Shark(Fish):
        def __init__(self):
            self.hungry = True
    
        def eat(self):
            if self.hungry:
                print("狠狠吃一口")
                self.hungry=False
            else:
                print("你想撑死我。。。")
    
    
    #-------------运行结果
    >>> f = Fish()
    首先你得是一只鱼
    >>> f.eat()
    吃吃吃
    >>> 
    >>> f2 = GoldFish()
    首先你得是一只鱼
    >>> f2.eat()
    吃吃吃
    >>> 
    >>> f3 = Shark()
    >>> f3.eat()
    狠狠吃一口
    >>> f3.eat()
    你想撑死我。。。
    >>> f3.swim()
    游来游去
    >>> 

      虽然python可以使用多继承,但是尽量要少用多继承,因为可能会造成不可预知的错误

    #假设我们有一个动物类
    class Animal:
        def swim(self):
            print("动物属性")
    # 鱼类
    class Fish:
        def __init__(self):
            print("首先你得是一只鱼")
        def swim(self):
            print("游来游去")
        def eat(self):
            print("吃吃吃")
    # 鲨鱼继承鱼类和动物类~~~~这里是为了演示,其实动物类可以作为鱼类的基类
    class Shark(Fish,Animal):
        def __init__(self):
            self.hungry = True
    
        def eat(self):
            if self.hungry:
                print("狠狠吃一口")
                self.hungry=False
            else:
                print("你想撑死我。。。")
    
    #我们看到了动物类和鱼类都有eat()方法,那么我们到底要继承哪一个,
    >>> f = Shark()
    >>> f.swim()
    游来游去
    >>> 
    #由输出我们可以看出鲨鱼继承了鱼类的属性,但是这个可能不是我们想要的,当然这个例子也许不太恰当,但是最终目的是想说尽量少用多继承
  • 相关阅读:
    hdu acm 2844 Coins 解题报告
    hdu 1963 Investment 解题报告
    codeforces 454B. Little Pony and Sort by Shift 解题报告
    广大暑假训练1 E题 Paid Roads(poj 3411) 解题报告
    hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
    hdu acm 1114 Piggy-Bank 解题报告
    poj 2531 Network Saboteur 解题报告
    数据库范式
    ngnix 配置CI框架 与 CI的简单使用
    Vundle的安装
  • 原文地址:https://www.cnblogs.com/pengpengzhang/p/8711556.html
Copyright © 2011-2022 走看看