栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第二十一课:面向对象(3)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第二十一课:面向对象(3)

一、继承

        在现实生活中,继承一般指的是子女继承父辈的财产。那么在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中可以描述为猫和狗都继承自动物。同理,波斯猫和家猫都继承自猫。而斑点狗,泰迪都继承之狗。程序中当我们定义一个class的时候,可以从某个现有的class继承,新的class称之为子类(Subclass),而被继承的class称之为基类、父类或超类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。

eg:

# 继承
class eg(): #父类
    def __init__(self,name,food):
        self.name = name
        self.food = food

    def eat(self):
        print('%s喜欢吃%s'%(self.name,self.food))


class eg1(eg):  #子类
    def __init__(self,name,food,drink):
        self.drink = drink
        #加载父类构造方法
        #eg.__init__(self,name,food)
        super(eg1, self).__init__(name,food)

    def drinks(self):
        print('%s喜欢喝%s'%(self.name,self.drink))

if __name__ == '__main__':
    a = eg1('哈士奇','骨头','可乐')
    a.eat()
    a.drinks()

还可以继承多个父类:如果继承的父类中有相同的方法名,而在子类中使用时未指定,python将从左至右查找父类中是否包含方法。

eg:

# 多继承
class A():
    def a(self):
        print('这是A里面的a方法')

class B():
    def b(self):
        print('这是B里面的b方法')

class C():
    def c(self):
        print('这是C里面的c方法')

class D():
    def d(self):
        print('这是D里面的d方法')

class E(A,B,C,D):   #继承ABCD四个父类的方法
    def e(self):
        print('这是E里面的e方法')

f=E()
f.a()
f.b()
f.c()
f.d()
f.e()
二、重写

        继承了父类中的方法后,在子类中也可以重写在父类中继承的方法。

        eg:

# 重写
class eg(): #父类
    def __init__(self,name,food):
        self.name = name
        self.food = food

    def eat(self):
        print('%s喜欢吃%s'%(self.name,self.food))


class eg1(eg):  #子类
    def __init__(self,name,food,drink):
        self.drink = drink
        #加载父类构造方法
        #eg.__init__(self,name,food)
        super(eg1, self).__init__(name,food)

    def drinks(self):   #重写方法
        print('%s喜欢喝%s'%(self.name,self.drink))

    def eat(self):
        print('重写方法')

if __name__ == '__main__':
    a = eg1('哈士奇','骨头','可乐')
    a.eat()
    a.drinks()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949692.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号