Python学习——面向对象的另两大特性,继承和多态

​根据B站 “黑马程序员” 的python教程记录笔记。

首先明确面向对象三大特性:
1.封装:根据职责将属性和方法,封装到一个抽象的类中
2.继承:实现代码的重用,相同的代码不需要重复的编写
3.多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度
其中​封装在前文已经简单讲过,详见:
Python学习——面向对象(OOP)

一、继承:

继承的概念:子类具有父类的所有方法属性
语法:class 子类(父类):
​示例代码:
在这里插入图片描述
此时在主函数中:
在这里插入图片描述

运行结果如下:
在这里插入图片描述
证明此时 Dog 类具有 Animal 类所有的属性和方法,该定义过程叫做继承。

继承具有传递性:

概念:子类拥有父类父类的父类所有属性和方法
如新定义类“哮天犬”:
在这里插入图片描述
在主函数中:
在这里插入图片描述
运行结果如下:
在这里插入图片描述

方法的重写:

父类的方法不能满足子类需求时,可以对方法进行重写(override)

实现方式:在子类中定义一个和父类同名的方法并且实现
示例:
在这里插入图片描述
主函数:
在这里插入图片描述

将bark方法重写,运行结果如下:
在这里插入图片描述

方法的扩展:

子类的方法实现中包含父类的方法实现
父类原本封装的方法实现子类方法的一部分
使用扩展的方式

方法:在需要的位置使用 super().父类方法 来调用父类方法的执行
代码其它的位置针对子类的需求,编写 子类特有的代码实现
例:
在这里插入图片描述
运行结果:
在这里插入图片描述
另外:
在这里插入图片描述

多继承:

子类 可以拥有 多个父类,并且具有 所有父类属性方法
例如孩子会继承自己父亲和母亲的特性

语法:
class 子类名(父类名1, 父类名2, …):

注意:如果 父类 之间存在 同名的属性或者方法 ,应该尽量避免使用多继承
若出现同名情况,则调用 先继承(在这里是先 父类名1 再 父类名2) 的方法

二、多态:

概念:不同的 子类对象 调用相同的 父类方法,产生不同的执行结果
1.多态 可以 增加代码的灵活度
2.以 继承重写父类方法 为前提
3.是调用方法的技巧,不会影响到类的内部设计
例:人类(父类)衍生出程序员(子类1)和设计师(子类2)
示例:
在这里插入图片描述
主函数:
在这里插入图片描述
运行结果:
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java作为一种面向对象的编程语言,具有封装、继承和多这三个重要概念。 首先,封装是指将数据和对数据的操作封装在一个类中,隐藏了实现的细节。通过封装,我们可以将数据的访问权限进行控制,从而保证数据的安全性和完整性。通过提供公共方法,我们可以控制对象对数据的访问方式,使得使用者只能通过指定的方法来访问和修改数据,避免了不恰当的操作。 其次,继承是指子类可以继承父类的属性和方法,可以实现代码的复用。通过继承,我们可以建立类之间的层次关系,并且在子类中可以重写父类的方法,实现对方法的扩展和改进。继承还可以提高代码的可维护性和可扩展性,当需要修改或新增功能时,只需要在相应的子类中进行修改或扩展,而不需要修改所有的类。 最后,多是指同一个方法可以根据不同的对象产生不同的行为。多性可以提高代码的灵活性和可扩展性,使代码更易于理解和维护。通过多,我们可以对不同对象使用相同的方法和接口,使得代码的逻辑更清晰,减少条件判断和重复的代码。 综上所述,封装、继承和多是Java面向对象编程中的重要概念。封装可以保证数据的安全性和完整性,继承可以实现代码的复用和功能的扩展,多可以提高代码的灵活性和可扩展性。掌握这三个概念,可以帮助我们更好地设计和实现面向对象的程序,提高代码的质量和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值