python入门笔记——面向对象基础1_7(单继承)

本文详细介绍了面向对象编程中的三大特性:封装、继承和多态。通过实例演示了如何在类间实现代码复用(继承),以及如何通过子类调用父类方法实现多态。同时讨论了继承的传递性和注意事项,如子类只能访问与其直接继承关系的属性和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面的话:

 

面向对象三大特性---

---1.封装(1_1-->1_6), 根据 职责将属性和方法封装到一个抽象的类中;

---2.继承 (1_7-->1_8) 实现代码的重用, 相同的代码不需要重复的编写;

---3.多态(1_9以后) 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度;

正式开始单继承学习:

① 继承的概念

继承的概念:子类 拥有 父类 的所有属性和方法

相同代码可以重用,这就是继承要做的事。 

举例:如下,动物类,狗类,哮天犬类中有互相包含的属性和方法。比如都会吃 喝 跑 睡觉。

所以在写代码的时候,相同代码可以重用,这就是继承要做的事。 

② 继承的语法 

如下语法:

class 类名(父类名):

pass

 在写动物类,狗类,哮天犬类时,共同有的属性我们考虑放到 父类 中。也就是哮天犬属于狗类,而狗类属于动物类,所以哮天犬的父类是狗类和动物类,狗类的父类是动物类。

程序如下:

class Animal:

    def eat(self):
        print("吃---")

    def drink(self):
        print("喝---")

    def run(self):
        print("跑---")

    def sleep(self):
        print("睡---")


class Dog(Animal):
    # 下面注释部分方法由继承父类提供,子类不需要在重复写了
    # def eat(self):
    #     print("吃")
    #
    # def drink(self):
    #     print("和")
    #
    # def run(self):
    #     print("跑")
    #
    # def sleep(self):
    #     print("睡")

    def bark(self):
        print("叫")


dog = Dog()
dog.eat()
dog.drink()
dog.run()
dog.sleep()
dog.bark()

运行结果:

③.继承的传递性

子类 拥有 父类 以及 父类的父类 中 封装的所有 属性和方法

通俗来讲就是儿子继承父亲并且继承爷爷。

案例:哮天犬,继承狗类,继承动物类

程序实现:

class Animal:

    def eat(self):
        print("吃---")

    def drink(self):
        print("喝---")

    def run(self):
        print("跑---")

    def sleep(self):
        print("睡---")


class Dog(Animal):

    def bark(self):
        print("叫")



class Xiaotianquan(Dog):

    def fly(selfs):
        print("我会飞!")


xtq = Xiaotianquan()
xtq.eat()
xtq.drink()
xtq.run()
xtq.sleep()
xtq.bark()
xtq.catch()

④ 继承的注意事项

在动物类中除了上节讲的 派生 一个Dog类,这节我们再派生一个Cat类,思考:Xiaotianquan类能否调用Cat类

 

程序如下:

class Animal:

    def eat(self):
        print("吃---")

    def drink(self):
        print("喝---")

    def run(self):
        print("跑---")

    def sleep(self):
        print("睡---")


class Dog(Animal):

    def bark(self):
        print("叫")


class Cat(Animal):

    def catch(self):
        print("我会抓老鼠")

class Xiaotianquan(Dog):

    def fly(selfs):
        print("我会飞!")


xtq = Xiaotianquan()
xtq.catch()

注意程序会报错, 因为xiaotianquan类和Cat类不是直接继承关系,所以哮天犬不能调用Cat类的抓老鼠方法。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木汐爱编程

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值