python继承、多态---子类和父类、super()、派生、抽象类、多继承、多态特性

本文详细介绍了Python中的继承特性,包括继承概念、子类和父类的关系、继承作用、查看继承的父类、方法复写、super()函数、__init__()方法、派生属性、私有属性和方法在继承中的表现,以及抽象类的定义和使用。同时,文章探讨了多继承,涉及语法、继承原理(钻石继承)和super()的本质。最后,讨论了Python的多态特性及其在实际应用中的意义。
摘要由CSDN通过智能技术生成

目录

一、继承特性

1.什么是继承?

2.继承中子类和父类的概念

3.继承的作用

4. 查看继承的父类 

 5.方法的复写

6.super()

 7.__init__()方法 

8. 派生属性

9.私有属性私有方法在继承中的表现

10.抽象类 

 二、多继承

1、语法

3、继承原理(钻石继承)

4、多继承中super本质

三、多态特性


一、继承特性

1.什么是继承?

继承就是让类和类之间产生父子关系,子类可以拥有父类的静态属性和方法。

继承就是可以获取另外一个类中的静态属性和普通方法。(并非所有成员)

在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类。

注意:python中的继承分为:单继承和多继承。

2.继承中子类和父类的概念

父类:用于被继承的类,称之为父类,也叫做基类,或者超类。

子类:继承其他类的类,称之为子类,也叫做派生类。

3.继承的作用

提高代码的重用率

练习1:创建Dog类和Cat类,分别设置name,age属性和定义eat()、sleep()方法。

并且Dog类在定义一个look_door()方法,Cat类定义climb_tree()方法。

dog = Dog('京东狗', 8)
dog.eat() # 吃饭
dog.sleep() # 睡觉
dog.look_door() # 看门狗

cat = Cat('天猫', 13)
cat.eat() # 吃饭 
cat.sleep() # 睡觉
cat.climb_tree() # 爬树

注意:我们发现Cat了和Dog类中有大量的重复代码。

练习2:使用继承方式,实现Dog类和Cat类重复代码的重用。

class Animal(object):
    type = '动物'

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print('吃饭')

    def sleep(self):
        print('睡觉')


class Dog(Animal):

    def look_door(self):
        print('看门狗')

class Cat(Animal):

    def climb_tree(self):
        print('爬树')
dog = Dog('京东狗', 8)
dog.eat() # 吃饭
dog.sleep() # 睡觉
dog.look_door() # 看门狗
print(dog.type) # 动物
cat = Cat('天猫', 13)
cat.eat() # 吃饭 
cat.sleep() # 睡觉
cat.climb_tree() # 爬树

4. 查看继承的父类 

格式:类名.__bases__

注意:

(1).python3中如果一个类没有继承任何类,默认继承object类。我们管这种类叫做新式类。

(2).object类,是python中的祖宗,所有的类都是从object类中继承下来的。

 练习1:查看Cat类和Animal类继承的父类。

print(Dog.__bases__)
print(Animal.__bases__)
'''
(<class '__main__.Animal'>,)
(<class 'object'>,)
'''

 5.方法的复写

子类中定义了和父类中相同的方法,我们叫做方法的复写(派生方法)。实例对象调用此方法 的时候就会调用自己类中的方法了。

练习1:定义一个Pig类继承上面的Animal类,重写父类中的eat方法

class Pig(Animal):

    def eat(self):
        print('吃猪饲料')

pig = Pig('荷兰猪', 3)
pig.eat()  # 吃猪饲料

6.super()

子类和父类有相同的方法,如果子类想调用父类相同的的方法。可以使用super()方法。

在python3中ÿ

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一二三四!

来来来!交个朋友,一起学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值