0.前言
如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步。你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负所望。谢谢!!!
1.前提
基于win10专业版64位系统+64位jdk1.8+64位python3.6.5+社区版pycharm2018.1.3+unittest+selenium3.141.0。
要学好自动化测试,我们先从python语言基础开始学习,一步一个脚印,欲速则不达哦!
2.多态
在正式讲多态之前我们先来看下重写和重载。
1)重写:父类中的同名方法不能满足子类的需求,在子类中重新定义一个同名方法。
class Father:
def study(self):
print('Father:study!')
class Son(Father):
def study(self):#这里定义的study方法相当于对父类同名的study方法进行了重写
print('Son:study!')
if __name__ == '__main__':
s = Son()
s.study()
2)重载:同一类中定义多个同名方法,但方法的形参类型、个数和顺序不同。注意:python没有重载,java有。
比如下面的java代码就多次用到了重载。为什么不用python写呢?因为python没有重载,仅供参考。
package package1;public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub study(); study("张三"); study("张三",18); study(18,"张三"); }
public static void study() {//定义study方法 System.out.println("study方法:0参数!"); }
public static void study(String name) {//重载study方法 System.out.println("study方法:1参数!"); }
public static void study(String name,Integer age) {//重载study方法 System.out.println("study方法:2参数!"); }
public static void study(Integer age,String name) {//重载study方法 System.out.println("study方法:2参数,互换位置!"); }}//运行结果:study方法:0参数!
study方法:1参数!
study方法:2参数!
study方法:2参数,互换位置!
3)多态:同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果。让具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容(功能)的函数。简单记忆:调用相同方法,传入不同对象,展现不同结果。
多态基于继承和重写,否则就不能形成多态。
class Father:#父亲类
def study(self):
print('Father:study')
class Son:#儿子类
def study(self):
print('Son:study')
if __name__ == '__main__':
def study(obj):
obj.study()
f = Father()
s = Son()
study(f)#多态:调用相同名称的方法,传入不同的对象,展现出不同的结果。
study(s)
#运行结果:
Father:study
Son:study