面向对象特点:继承

本文介绍了Python中的继承特性,包括继承的传递性、方法覆盖与扩展。详细讲解了类的结构,如何创建和初始化对象,以及实例属性和实例方法的概念。接着探讨了新式类与旧式类的区别,强调在Python3中默认为新式类,并推荐在定义类时继承自object。最后,解释了super函数在解决多继承问题中的作用。
摘要由CSDN通过智能技术生成

继承

1.继承的特性

继承具有传递性
当父类方法的实现不能满足子类的需求的时候
可以对父类方法进行重写
1.覆盖父类方法
2.对父类的方法进行扩展



class Animal:
    def eat(self):
        print('吃!!!')
    def drink(self):
        print('喝!!!')
    def run(self):
        print('跑!!!')
    def sleep(self):
        print('睡!!!')

class Cat(Animal):
# Cat类继承了Animal类
    def call(self):
        print('喵喵!!')

class Hellokitty(Cat):
    def speak(self):
        print('我可以说话')
    def call(self):
        # 调用原本在父类中封装的方法
        super().call()#保留父类的方法,进行重写。
        # 不加此句,子类中与父类同名的方法会覆盖父类的方法。
        # Cat.call(self) python2.x
        # 针对子类特有的需求 编写代码
        print('#%@@#$#@%')

class Dog(Animal):
    pass


cat = Hellokitty()
cat.eat()
cat.drink()
cat.run()
cat.call()

dog = Dog()
dog.run()
dog.eat()

在这里插入图片描述

2.类的结构

类的结构
1.使用面向对象开发,第一步是设计类
2.使用 类名() 创建对象,创建对象的动作有两步

  1. 在内存中为对象分配空间
  2. 调用初始化方法__init___ 为对象初始化

3.对象创建后,内存中就有了一个对象的实实在在的存在–实例
因此:

1.创建出来的对象叫做类的实例
2.创建对象的动作叫做实例化
3.对象的属性叫做实例属性
4.对象调用的方法叫做实例方法

在程序执行时:

1.对象各自拥有自己的实例属性
2.调用对象的方法,可以通过self:访问自己的属性,调用自己的方法

结论:

1.每一个对象都有自己独立的内存空间,保存各自不同的属性
2.多个对象的方法,在内存中之有一份,在调用方法时,
需要把对象的引用传递到方法内部
在这里插入图片描述

在这里插入图片描述
运行结果:
在这里插入图片描述

3.新式类和旧式类(经典类)

新式类和旧式(经典)类:
object是Python为所有对象提供的基类,提供有一些内置的属性和方法,可以使用dir函数查看
新式类:以object为基类的类
经典类 不以object为基类的类

  • 在python3.X中定义的类时,如果没有指定父类,会默认使用object作为基类–python3.x中定义的类都是新式类在python2.x中定义类时,如果没有指定父类,则不会以object作为基类

为保证编写的代码能够同时在python2.x和python3.x运行,今后在定义类时,如果没有父类,建议统一继承自object

[dd@foundation0 bin]$ /usr/local/python3/bin/python3
Python 3.6.4 (default
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值