1、多态

同一个方法在不同的类中最终呈现出不同的效果,即为多态。

class Triangle:def __init__(self,width,height):self.width = widthself.height = heightdef getArea(self):area=self.width* self.height / 2return areaclass Square:def __init__(self,size):self.size = sizedef getArea(self):    # 同一个方法在不同的类中最终呈现出不同的效果,即为多态area = self.size * self.sizereturn areaa=Triangle(5,5)
print(a.getArea())
b=Square(5)
print(b.getArea())

执行效果如下:

2、继承

(1)子类可以继承父类所有的公有属性和公有方法:

class Father:money = 1000000def drive(self):print('I can drive a car!')class Son(Father):passtom = Father()
print(tom.money)
tom.drive()print('#'*50)jerry=Son()
print(jerry.money)
jerry.drive()

执行后:

(2)对于父类的私有属性,子类不可以访问。

(3)对于多继承

多个父类的有相同的某个属性,子类只继承第一个父类的属性。

3、方法重载

子类重写父类的方法:


class Father:money = 1000000__money = 9999999def drive(self):print('I can drive a car!')class Son(Father):def drive(self):     #重载父类的方法drive()print('I can drive a tank!')Father.drive(self)    #在子类中直接调用父类的方法drive()def pay(self):print(self.money)tom = Father()
print(tom.money)
tom.drive()print('#'*50)jerry = Son()
jerry.drive()

执行后:

重载运算符

class Mylist:  #定义类Mylist__mylist = []def __init__(self,*args):self.mylist = []for arg in args:self.__mylist.append(arg)def __add__(self,x):   #定义操作+for i in range(0,len(self.__mylist)):  #依次遍历列表,执行加操作self.__mylist[i] = self.__mylist[i]+xreturn self.__mylistdef __sub__(self,x):passdef __mul__(self,x):passdef __div__(self,x):passdef __mod__(self,x):passdef __pow__(self,x):passdef __len__(self,x):passdef show(self):   #显示列表中的数值print(self.__mylist)if __name__ == '__main__':   #通过name的内置属性l = Mylist(1,2,3,4,5)  #定义一个列表对象l+10l.show()

4、模块

从交互解释器导入包,并调用包中的类和方法。如下:

>>> import claMylist
>>> dir(claMylist)
['Mylist', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
>>> import claMylist as cml
>>> ml=cml.Mylist(6,7,8,9,10)
>>> ml
<claMylist.Mylist object at 0x00000263F78D9240>
>>> ml.show()   #执行类中的方法show()
[6, 7, 8, 9, 10]
>>> ml+100
[106, 107, 108, 109, 110]
>>> x=ml+100   #将执行+操作后的值存放在x中
>>> x
[206, 207, 208, 209, 210]
>>>

转载于:https://www.cnblogs.com/Paul-watermelon/p/11232219.html

python3:面向对象(多态和继承、方法重载及模块)相关推荐

  1. JAVA基础-U7 面向对象编程(基础部分)-方法重载

    方法重载(Overload) 基本介绍 java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致 eg. System.out.println(); //out是PrintStream类型 ...

  2. Android基础之Java多态、继承、重载和重写的区别

    [免费]全网独家:这是一份非常值得珍藏的Android知识体系!!! 一.继承(inheritance) 1.1 继承是什么 简而言之,继承就是在现有类的基础上,增加新的方法或者重写基类的方法的一种方 ...

  3. java面向对象解决兔子问题_7-Java面向对象-多态

    多态: 多种形态,面向对象的核心,封装和继承都是为多态而服务的. 位于最后也是最重要的. 本次课程围绕: 什么是多态? 多态在程序设计中的优势? 在Java中如何实现多态? 多态的概念 猫,狗,兔子都 ...

  4. Java基础【之】面向对象编程(封装、继承(extends、方法重写、super)、多态(动态绑定、重载/重写)、代码实现)

    Java基础[之]面向对象编程(封装.继承.多态.代码实现) 1.封装 2.继承 2.1.extends 2.2.方法重写 2.3.super 3.多态 3.1.对象的多态.方法的多态 3.2.动态绑 ...

  5. Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)

    Java面向对象编程包含哪些内容? 怎么理解面向对象编程? 现实生活中,我们定义了"人"的抽象概念,这就是类class,生活中的每一个具体的人就是实例instance. class ...

  6. python完全支持面向对象编程思想_面向对象的编程思想和Python的继承和多态,特殊方法,引用计数...

    面向对象的编程思想和Python的类,访问和属性,继承 在上一文中我们了解到了,私有的属性的访问方式:实例名._类名__私有属性名. 一.私有的属性如何对外提供公有的取值和赋值方法呢?提供公有的方法作 ...

  7. 学习-Java继承和多态之方法重载

    第1关:学习-Java继承和多态之方法重载 任务描述 相关知识 编程要求 测试说明 任务描述 本关任务:使用重载方法为 Student 类创建三个构造方法. 相关知识 Java 中重载是指一个类中可以 ...

  8. java基础2:this、static、final、abstract关键字、代码块、生成API工具包、继承、多态、方法重载和重写,抽象类、接口、常见异常、java权限修饰符、选择排序思想和程序和内部类

    1.this关键字 this表示当前类对象的地址空间值的引用.就是说,this代表了new出来的对象 其最大作用就是解决了构造器中局部变量隐藏成员变量.即用this.变量名 = 变量名 区分. 2.s ...

  9. 面向对象三大特性 -- 继承,封装,多态

    继承: 1.继承是面向对象程序设计能够提供软件开发效率的重要原因之一: 2.继承是具有传递性的: 3.继承来的属性和方法时隐式的,也就是在本类里面是看不见的: 4.一个类只能有一个父类,也就是只能单继 ...

最新文章

  1. FTP 命令的使用详解
  2. 大厂面试篇:五轮面试,阿里offer到手!
  3. 解析错误:相邻的JSX元素必须包装在一个封闭标签中
  4. 机器学习基础-岭回归-06
  5. mysql序列号发生器
  6. PostgreSQL 常见操作
  7. 线程导入大数据入库_大数据处理及分析该怎么做?用这款数据分析软件轻松搞定...
  8. VSTO 2005 项目的布署和运行
  9. SQL查询-将列转换成字符串(for xml path)
  10. wps右下角弹窗广告(WPS购物或叫WPS热点)彻底关闭
  11. java 群发邮件_java群发邮件
  12. 浏览器端技术体系概览 -- 前端开发的七种武器
  13. 线性回归中常见的一些统计学术语(RSE RSS TSS ESS MSE RMSE R2 Pearson's r)
  14. order by、distribute by、sort by、group by、partition by
  15. 思科三层交换机开启ipv6路由功能_网络工程实战之三层交换机配置IPv6 DNS 示例...
  16. Matlab------如何控制matlab中的数据输出格式
  17. 从语音信号处理角度解读mic规格书
  18. 什么是编程,学习编程的意义是?
  19. mac安装配置zsh
  20. scrapy抓取淘宝女郎 1

热门文章

  1. CCF 201809-1 买菜
  2. ActiveSupport::Concern 和 gem 'name_of_person'(300✨) 的内部运行机制分析
  3. 在eclipse中指定启动时java的位置
  4. C# mysql 插入数据,中文乱码
  5. Kubectl指令集
  6. 使用Spring Task完成定时任务
  7. 升级xcode5.1 iOS 6.0后以前的横屏项目 变为了竖屏
  8. Lecture 19 Shortest Paths III
  9. Lecture 3 Divide and Conquer
  10. [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]