python面向对象之面向对象三要素
- 面向对象三要素
封装:
通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
继承:
继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。
多态:
多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。
封装
执行以下代码:
class Person():def __init__(self):passdef set_name(self, name):self.__name = namedef get_name(self):return self.__namedef greet(self):print("Hello, world! I'm {}.".format(self.name))p = Person()
p.set_name('test')
print(p.name)
执行后报错信息:
print(p.name)
AttributeError: 'Person' object has no attribute 'name'
修改为:
p.get_name()
正确输出
以上代码 将数据__name封装到类中,只能通过set_name和get_name方法操作数据;
继承
继承是一种创建新类的方式,在python中,新建的类可以继承一个父类(单继承)或多个父类(多继承)
代码示例:
class Person():def __init__(self):passdef set_name(self, name):self.name = namedef get_name(self):return self.namedef greet(self):print("Hello, world! I'm {}.".format(self.name))class Boy(Person):def run(self):print('i can run')def greet(self):print('i am subclass boy')b =Boy()
b.name = '张三'
b.greet()
多态
- 多态性的本质在于不同的类中定义有相同的方法名,这样我们就可以不用考虑而统一用一种方式去使用对象,可以通过在父类引入抽象类的概念来硬性限制子类必须有某些方法名:
- 多态已封装和为前提继承
在上面代码基础上新增以下代码:
class Girl(Person):def say(self):print('i can good girl')def greet(self):print('i am subclass Girl')
Boy,Girl都继承自Person,三个对象都有同样的方法名greet();
Boy和Girl重写了父类的方法,实现不同的输出;
python面向对象之面向对象三要素相关推荐
- python面向对象的概念_Python面向对象概念和三要素
语言分类 1.面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 2.面向过程 做一个事情,排出步骤,第一步干什么,第二步干什么,如果出现情况A怎么处理,如果出现情况B做什么处理. 问题规模小,可 ...
- python面向对象思路_Python面向对象三要素-继承(Inheritance)
Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...
- Python基础学习——面向对象编程(第一讲:面向对象概述、面向对象三个基本特征(封装性、继承性、多态性)、类和对象(定义类、创建和使用对象、实例变量、类变量、构造方法、实例方法、类方法、静态方法))
面向对象是Python最重要的特性,在Python中一切数据类型都是面向对象的. 1.面向对象概述 面向对象的编程思想是,按照真实世界客观事物的自然规律进行分析,客观世界中存在什么样的实体,构建软件系 ...
- java构成对象的三要素_20155237 《JAVA程序设计》实验二(JAVA面向对象程序设计)实验报告...
20155237 <JAVA程序设计>实验二(JAVA面向对象程序设计)实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S ...
- VB面向对象的三要素理解。
面向对象比较通俗的解释:对象使人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可以看做对象,他不仅能表示具体的事物,还能表示抽象的规则,计划或事件. VB就是使用了面向对象程序设计(OOP)方 ...
- python中的面向对象(教学式讲解)
文章目录 面向对象术语简介 面向对象基础 类和封装 理解面向对象 类和对象(封装) 添加和获取对象属性 类属性和实例属性 类方法和静态方法 面向对象-继承 面向对象-多态 模块和包 4.1 模块 4. ...
- 【循序渐进学Python】7.面向对象的核心——类型(上)
我们知道Python是一门面向对象的脚本语言.从C#的角度来看:首先Python支持多继承.Python 类型成员通常都是public的,并且所有成员函数都是virtual的(可以直接重写). 1. ...
- Python类及面向对象编程【转】
Python类及面向对象编程 类是用来创建数据结构和新类型对象的主要机制.本章的主题就是类,面向对象编程和设计不是本章的重点.本章假定你具有数据结构的背景知识及一定的面向对象的编程经验(其它面向对象的 ...
- Python面向对象学习 1 (什么是面向对象,面向对象的应用场景,待更新)
程序设计的三种基本结构: 面向对象,面向过程,函数式编程 1,什么是面向对象编程 面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" ...
最新文章
- 在EXCEL表格中怎么去掉全部的内容的最后一个字
- 如何使用 Arthas 定位 Spring Boot 接口超时
- matlab球面波衍射,单色点源矩孔菲涅耳衍射光场的计算与模拟
- ORA-12170:TNS:连接超时
- Hawtio和Apache JClouds
- USACO-Section2.3 Zero Sum
- WINDOWS访问虚拟机RedHat搭配的Apache2服务器
- 布局管理——复习示例
- 为什么软件最终都会变得很复杂?
- Python基础(2):控制结构
- 【学堂在线数据挖掘:理论方法笔记】第五天(3.29)
- Caffe学习:pycaffe利用caffemodel进行分类=批处理
- Daily Scrum 12/9/2015
- java 事务嵌套_Java事务以及嵌套事务
- Android的Holo Theme
- JavaWeb:掌握Session的使用,完善用户登录注册案例的功能
- android 滑屏功能,Android 滑屏效果实现方式汇总
- 计算机上发出打印命令,从计算机上发送打印命令后打印机不打印怎么办
- 什么是“冲激响应”?这样讲你该理解了!
- C语言编程学习不难学,是你没找对方法!