python3 重写、重用、重载
重用
重用是用于在对象的概念中,实现代码的重用性
在继承角度,在子类继承父类之后,重新使用父类属性方法即是代码的重用
在组合角度,在一个类中以另外一个类的对象作为数据属性,提高代码的重用性
重用的方式:
继承:
方式一:指名道姓的应用某一个类中的函数(无关继承,访问函数不存在自动传值)
例如:CollegePeople.__init__(self, name, age, sex)
方式二:使用内置方法super(),返回特殊对象访问属性(严格依赖mro列表,存在自动传值)
例如:super().__init__( name, age, sex)
组合:通过为某一个对象添加属性的方式,间接将两个类进行关联,减少类与类代码冗余
class Foo:
xxx = 222
class Bar:
yyy = 111
obj = Foo()
b = Bar()obj.attr = Bar()
obj.a = bobj.xxxx #调用Foo内属性
obj.attr.yyyy #调用Bar内属性
重写
重写用于继承概念下,子类继承父类需要同名的不同函数,即可修改重写同名方法。
例如:
class Parent: # 定义父类
def myMethod(self):
print '调用父类方法'class Child(Parent): # 定义子类
def myMethod(self):
print '调用子类方法'c = Child() # 子类实例
c.myMethod() # 子类调用重写方法
重载
重载是,函数或者方法有相同的名称,但是参数列表不相同(类型不同,数量不同,位置不同)的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
python的实现过程中可能存在重载,但是在Python的呈现使用中不存在重载的概念。
原因:python 可以接受任何类型的参数,而对那些缺少的参数设定为缺省参数即可解决问题。即,python中参数传递时候的*arg和**kwargs
转载于:https://www.cnblogs.com/ZKPython/p/10735883.html
python3 重写、重用、重载相关推荐
- 9.多态(P a1=new B();)重写与重载、instanceof关键字
1.多态 P a1=new B(); 根据传入子类对象,自主选择重写的方法,没有重写则用父类P.但这并不意味着这个对象是子类B对象,相反它自转为父类PB对象,不能使用子类B的特有方法,属性. 从生活多 ...
- C# 继承实现父类方法、重写、重载
继承是派生类(子类)去实现(重写<override>.重构<new>)基类(父类)的方法或属性.从而获取在派生类中要实现的功能. 子类调用父类构造方法,在父类中有个实现姓名和年 ...
- 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载
<?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...
- 【Java基础】重写与重载
为什么80%的码农都做不了架构师?>>> 重写(Override): 定义:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类 ...
- 重写与重载的区别 以及 重写中super的使用
重写是父类方法与子类方法有共同的参数名参数列表,返回类型必须父类的方法一致.子类的访问修饰符一定要大于等于父类的访问修饰符.如果在子类中还需要用到父类的方法,用super.method() 然后继续写 ...
- Java的重写和重载机制
Java的重写和重载机制 张磊 zhangleispirit@gmail.com Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,本文主要在此做一个归纳总结. ...
- float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK
1.float 与 double 1.1 字面量属于 double 类型,不能直接将 1.1 直接赋值给 float 变量,因为这是向下转型. // float f = 1.1; Java 不能隐式执 ...
- Java继承、重写与重载 笔记
1. Java继承 继承要符合的关系是:is-a,父类更通用,子类更具体. 1.1 继承的特性 子类拥有父类非private的属性,方法. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. 子 ...
- Java基础之重写与重载深入解析
Java详解重写与重载 首语 总结java重写与重载的时候,在菜鸟教程看到很详细的解释,觉得很好,就搬过来了,侵删. url:https://www.runoob.com/java/java-over ...
- Java重载和重写6_深入理解Java中的重写和重载
深入理解Java中的重写和重载 重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念.但是对于新手来说也比较容易混淆.本文通过两个简单的例子说明了他们之间的区别. ...
最新文章
- java 方法引用无效_InvalidProgramException:调用方法时无效的IL代码
- python中获取python版本号的方法
- R7-2 试试多线程 (10 分)
- Dominant Indices(CF 1009 F)
- insert into select 主键自增_springboot2结合mybatis拦截器实现主键自动生成
- Vue使用Element-ui按需引入大坑
- windows下使用word2vec训练维基百科中文语料全攻略!(三
- Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
- mysql 5.7 slow_mysql 5.7 解决 set global slow_query_log=on;报错
- Telnet 窗口看不见字符
- 照度计与亮度计的区别及如何挑选?
- Day 14 python 之 字符串练习
- python数据分析之(1)数据输入和输出
- 测试用例设计方法有哪些?
- 《创业维艰》详细的思维导图
- Matlab中linspace函数的用法
- 浙江大学-研究生机器学习课程-课堂笔记
- 毕业设计网站项目的开发流程
- Java开发中各类名词解释大全
- hashmap扩容线程安全问题_HashMap是非线程安全,为什么ConcurrentHashMap能做到线程安全?...