首页 > 其他分享 >面向对象之对象的三大特性

面向对象之对象的三大特性

时间:2023-06-26 16:55:28浏览次数:32  
标签:__ 继承 子类 代码 多态 特性 面向对象 对象 三大

一、封装

封装是一种将数据和相关方法组合成一个单独的实体的机制。它将数据(属性)和操作数据的方法(方法)封装在一个对象中,并对外部代码隐藏了内部的实现细节。通过封装,对象可以提供一个公共接口,使得外部代码可以通过该接口访问和操作对象的数据,而不需要了解其内部的具体实现。

二、继承

继承是一种通过定义一个新类来继承现有类的属性和方法的机制。

它允许新类(子类)继承现有类(父类)的属性和方法,并且可以在新类中添加新的属性和方法,或者重写父类的方法来定制子类的行为。

继承促进了代码的重用和扩展(),并且提供了层次化和组织化的代码结构。

1、为什么要继承?
类解决什么问题:解决的是对象与对象之间的代码冗余问题
继承解决什么问题:解决的是类与类之间的代码冗余问题

2、子类的继承可以有多个父类

class Parent1(object):
    pass

class Parent2:
    pass

# 子类
class Sub1(Parent1):
    pass

# 多继承, 括号里面可以写多个类
class Sub2(Parent1, Parent2):
    pass

3、查看一个类继承了哪些父类,.__bases__方法

print(Sub1.__bases__) # (<class '__main__.Parent1'>,)
print(Sub2.__bases__) # (<class '__main__.Parent1'>, <class '__main__.Parent2'>)
print(Parent1.__bases__)  # (<class 'object'>,)

 

 

 

三、多态

多态是指同一种操作或函数可以作用于不同的对象类型,并产生不同的行为。多态允许使用统一的接口来处理不同类型的对象,而不需要关心对象的具体类型。通过多态,可以编写通用的代码,减少了重复的代码和条件语句的使用,提高了代码的可扩展性和可维护性。多态实现了面向对象编程中的一个重要原则:针对接口编程,而不是针对实现编程。

标签:__,继承,子类,代码,多态,特性,面向对象,对象,三大
From: https://www.cnblogs.com/dgp-zjz/p/17506118.html

相关文章

  • G-LAB 带你了解 RHEL 9 新特性
    OpenSSH:新增禁止root的密码登录Cockpit:RHEL的Web控制台DNF-3:软件安装方法NetworkManager:网络管理的主要组件Nftables:默认的用户空间防火墙WireGuard:快速、安全的VPN隧道(技术预览)Podman&Skopeo:新一代容器运行时与镜像搬运工具LVM-VDO:以逻辑卷形式使用VDORHEL9新特性与演......
  • 采用永磁同步模型的电流预测控制和滑模控制来提高系统的鲁棒性和稳态特性。滑模控制器
    采用永磁同步模型的电流预测控制和滑模控制来提高系统的鲁棒性和稳态特性。滑模控制器结合了新型趋近律和扰动观测器,以实现更好的控制效果。电流环使用了预测控制双矢量改进算法,以提高控制精度和响应速度。涉及的知识点和领域范围:原创文章,转载请说明出处,资料来源:http://imgcs.cn/......
  • java 8新特性 list转map
    List<Object> 转Map<String,List<String>>Map<String,List<String>>skillAndList=list.stream().collect(Collectors.groupingBy(Employee::getSkillId,Collectors.mapping(Employee::getStudent,Collectors.toList())));List<Obje......
  • AI绘画:Roop插件的特性与安装!
    交叉”学科”来了! 我们之前讲过可以实现单图换脸的Roop,也讲过可以通过文字描述画画的项目Stable-Diffusion-WebUI。现在这两者要通过sd-webui-roop产生交汇。我们先来简单的看一下这个插件可以干什么!   功能特点根据项目作者的说法,这个插件基于r......
  • JavaScript1.8.5新特性系列Object.keys
    以前在js-object这个分类里面也写过keys相关的api 在JavaScript1.8.5中,加入了原生的Object.keys这个api  Object.keys(obj);/*简单举例*/Object.keys({"A":"a","B":"b"});//["A","B"]兼容性写法:  if(!Object.keys){Object.keys=......
  • 面向过程概念 面向对象概念 类的定义和对象的产生 对象独有的数据 属性的查找顺序
    目录面向过程概念面向对象概念类的定义和对象的产生对象独有的数据属性的查找顺序面向过程概念面向过程(ProcedureOriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类......
  • 后悔没早知道这些Python特性
    写Python也好几年时间了。讲道理,在工作中大家肯定遇到过这样的场景:这个故事告诉我们什么?先造轮子再去GitHub?还是提高下GitHub搜索技巧?都不是!实际上,在日常的工作中,我们很多需求,无论是常见的、还是不常见的,Python都为我们提供了一些独特的解决方案,既不需要自己造轮子,也不需要引......
  • 面向对象
    面向过程面向过程就是先干什么后干什么,有顺序写,例如之前所写的ATM,就是面向过程。优点:复杂问题简单化。缺点:扩展性比较差,其中一部分要修改,就要修改很多位置,牵一发而动全身。对扩展性要求不高的地方可以使用面向过程。面向对象在生活中,对象就是“特征”和“技能”的结合体。在......
  • 面向对象
    面向对象面向过程面向过程:就是机械的思维方式,先干什么,在干什么,最后干什么,其核心就是过程代码案例,实现面向过程的例子:1.接受用户名和密码2.做逻辑处理,验证参数3.将数据写入文件中优点:把复杂的问题简单化,进而流程化缺点:扩展性差使用场景:对扩展性要求不高的地......
  • python基础day31 面向对象
    面向过程在支持面向对象的语言中,都有两大范式:1.面向过程;2.面向对象面向过程:核心就是过程二字,即是先干什么,再干什么,最后干什么,就是机械式的思维方式举例: 把大象放进冰箱需要几步? 1.把冰箱门打开2.把大象放进去3.关上冰箱门代码案例:实现面向过程的例子......