百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

程序员Python和Java类的封装、继承和多态

off999 2024-10-25 13:44 51 浏览 0 评论


@Python大星

一、Python 类的封装、继承和多态

封装

继承

Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Python 会从左至右搜索基类中是否包含该方法。一旦查找到则直接调用,后面不再继续查找。解决了多重继承的冲突问题。



多态

狗、猫、猪都继承了动物类,并各自重写了 kind 方法。show_kind () 函数接收一个 animal 参数,并调用它的 kind 方法。可以看出,无论我们给 animal 传递的是狗、猫还是猪,都能正确的调用相应的方法,打印对应的信息。这就是多态。

二、Java 类的封装、继承和多态

封装

隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。

1、封装的优点

① 良好的封装能够减少耦合。

② 类内部的结构可以自由修改。

③ 可以对成员变量进行更精确的控制。

④ 隐藏信息,实现细节。

2、如何理解 Java 的封装?

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,常见的实现方式就是:getter、setter。

假设我们的类 Person 是这样:

如果在外部代码使用它,则需要:

但是,现实中如果很多外部代码都使用了 Person 这个类;某一天,如果这个类的 age 需要换成 String 类型,那么,外部使用它的任何地方都需要需改 xxx.age="xxx"。

如果我们使用 getter、setter

这样外部其他地方就不需要改了。

我们在 getter、setter 中还可以对成员变量进行精准的控制

继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。如下图

如果不用继承,代码可能这样

我们可以发现里面有很多重复性的代码。

如果我们使用继承

1、继承的注意事项

① 子类只能继承父类非私有的成员(成员方法和成员变量)

② 子类不能继承父类的构造方法,但是可以通过 super 关键字去访问父类构造方法

this 和 super 的区别?

this 代表本类对象的引用,super 代表父类存储空间标识。

【你一定遇到过Java 面试继承相关题目】

第一关:

输出结果:

第二关:

输出结果:

Java 是单继承的,那为什么不能允许多继承?

假设有一个老虎类,既继承父类猫科,又继承父类动物科,如果两个父类都有一个“吃”的方法,那么当我们调用 “叫” 这个方法时,它就不知道是猫科叫还是动物叫了,这就是多重继承的冲突。

多态

多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。

1、多态的优点

① 消除类型之间的耦合关系

② 可替换性

③ 可扩充性

④ 接口性

⑤ 灵活性

⑥ 简化性

2、多态存在的三个必要条件

  • 继承
  • 重写
  • 【初级面试必问:重写和重载的区别?】

    ① 重写

    重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写!

    重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

    重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。

    ② 重载

    是指一个类中方法名称相同,但参数的个数,类型或顺序不同与返回值无关!


    注意:比如说你方法名fun相同,参数个数,类型顺序相同,但是返回值一个是 void,一个是 String,这不构成重载。试想一下,如果我们调用这个方法,fun(a,b),机器如何判断我们是调用哪一个呢?结论:不要让机器做不确定的事情。

  • 父类引用指向子类对象
  • ① 向上转型:将一个子类的引用赋给一个超类变量,编译器是允许的,不用进行强制类型转换。

    格式: 超类 超类变量 = new 子类 ();

    ② 向下转型:但是将一个超类的引用赋给 一个子类变量,必须进行强制类型转换,这样才能够通过运行时的检查

    格式: 子类 子类对象变量名 =(子类) 父类对象引用


    结论:当超类类变量引用子类对象

    访问成员变量时:访问的是父类的成员变量

    访问成员方法时:先访问的是超类的此方法,如果此方法被子类覆盖,则调用子类的方法。并且不能访问子类特有的方法

    输出结果:

    >>>Python 和 Java 基础对比 09 —— 类的介绍

    相关推荐

    qq网页版官网(qq1网页版)
    • qq网页版官网(qq1网页版)
    • qq网页版官网(qq1网页版)
    • qq网页版官网(qq1网页版)
    • qq网页版官网(qq1网页版)
    联想软件商店官网(联想应用商店官网下载安装)

    要设置联想电脑应用商店,首先需要打开商店应用并进行登录。之后可以根据个人需求浏览并下载商店中的应用,也可以通过搜索功能查找特定应用。在商店中还可以管理已下载的应用、更新应用以及查看应用评价和评论。此外...

    xp如何看电脑是32位还是64位
    • xp如何看电脑是32位还是64位
    • xp如何看电脑是32位还是64位
    • xp如何看电脑是32位还是64位
    • xp如何看电脑是32位还是64位
    tp路由器设置登录网址(tplink路由器设置网址登录)

    tplogin.cn是TPlink路由器界面的默认登陆入口地址。TPlink常见的登陆入口地址:192.168.1.1,192.168.0.1,tplogin.cn,192.168.0.254,192...

    qq邮箱码正确格式(qq邮箱格式怎么写正确)
    qq邮箱码正确格式(qq邮箱格式怎么写正确)

    1.每个人在注册QQ时都会有关联的一个邮箱,它的格式就是“QQ号码@qq.com”。2.用户可以免费开通自己的手机号码邮箱帐号。3.QQ邮箱还可以注册“……@foxmail.com”这样的商务型帐号。4.@qq.com邮箱可以有一个数字帐号...

    2025-11-18 13:03 off999

    移动硬盘做启动盘教程(移动硬盘如何制作系统启动盘)

    1.在xp系统中安装矮人DOS。2.在xp系统中用PQ(windows版)将移动硬盘的第一个分区设为活动,并激活。(注:你将要在该分区写入引导信息)3.重启电脑,进入矮人DOS,选择支持usb驱动...

    怎样打开cdr文件(.cdr用什么打开)

    cdr是什么文件?cdr文件用什么打开?cdr文件是CorelDraw图像制作软件标准的输出格式,与photoshop(PS)图片设计软件类似都属于图片设计软件,需要打开cdr文件我们就需要先了解C...

    微软拼音输入法好用吗(微软拼音输入法好用吗知乎)

      CTRL(Control)组合键;Ctrl+Alt+A(截屏);Ctrl+A(All)全选;Ctrl+C(Copy)复制;Ctrl+V粘贴Ctrl+S保存,窗口...

    怎么设置屏保密码(怎么设置屏保密码和锁定时间)

    屏保密码设置的方法步骤1、鼠标左键单击桌面下的【开始】菜单键;点击【控制面板】;2、点击【外观和个性化】;然后点击【个性化】选项卡中的【更改屏幕保护程序】;3、选择一个自己喜欢的程序,勾选,然后再点击...

    无法下载ie浏览器怎么办(ie浏览器显示无法下载)

    如果您在使用IE浏览器时遇到无法下载的问题,以下是一些常见的解决办法:1.清除浏览器缓存:打开IE浏览器,依次点击工具(齿轮图标)->Internet选项->常规选项->...

    笔记本w7可以升级w10吗(笔记本w7可以升级w10吗)

    要将wln7升级到win10,需要先确保计算机配置符合win10的最低要求,包括处理器、内存、硬盘空间等。然后,可以下载win10的升级助手或镜像文件,在升级前备份重要数据,选择需要保留的文件和设置,...

    如何卸载电脑浏览器软件(怎样卸载电脑浏览器)
    如何卸载电脑浏览器软件(怎样卸载电脑浏览器)

    如果我们发现我们从浏览器里面下载的东西删不了,这个时候,我们就可能是由于下载到了了一些病毒软件或者是病毒程序而导致的,如果说想要解决这个问题,方法的话也很简单,我们可以通过杀毒软件对其进行杀毒,然后再进行卸载,基本上就可以删除了。app卸载...

    2025-11-18 09:51 off999

    联想怎么看电脑配置和型号(联想怎么看电脑配置和型号笔记本)

    笔记本看型号有推荐三种方法:第一种,点击你笔记本上的(开始),然后找到(运行)打开,在里面的输入框里输入(dxdiag)点击确定,你就可以看见笔记本型号,系统型号等笔记本信息。第二种,就是在你的电脑上...

    怎么ghost电脑系统(怎样ghost)

    使用GHOST软件备份系统即可。1、网上下载一键GOST安装好,重启电脑运行一键gost-选择手动进入GOST。2、进入GHOST的操作界面,点OK。3、选择菜单到Local(本机)--Partiti...

    u盘读取软件下载(u盘读取器下载)

    手机播放U盘里的视频不用刻意的去安装什么播放器,一般手机里自带的播放器就能够直接播放U盘里的一般常见的视频。只要你要播放的视频,都是平时在电脑上或者电视上能够正常播放的视频,一般在手机里面它的系统自带...

    取消回复欢迎 发表评论: