python基础:13.面向对象之多态

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值