python学习之继承和多态

时间:2019-10-06 19:48:06   收藏:0   阅读:63
#!/home/miao/python python3 
# -*- coding: utf-8 -*-



这是关于继承和多态


class Parent(object):
    def __init__(self,name,age):
        self.__name = name
        self.age = age

    def get_name(self):
        print(self.__name)

    def set_name(self,name):
        self.__name = name
    def run(self):
        print(dad running...)

class ChildOne(Parent):
    def run(self):
        print(child running...)
#这里类ChildOne从父类中继承了其中的函数定义,这是自己定义的一种数据类型
#在定义一个ChildOne类型的变量时要重新传入参数
parent = Parent(aa,45)

print(parent.age)

child = ChildOne(bb,23)

print(child.age)

child.get_name()
child.set_name(miao)
child.get_name()


class Dog(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def get_name(self):
        print(self.name)
    def run(self):
        print(dog running...)

dog = Dog(cc,10)

def print1_twice(parent):
    parent.get_name()
    parent.get_name()
#多态性,从父类继承的类型可以直接使用。子类也是父类的类型,
#注意这里传入的是变量  所以我犯了很严重的错误  变量后加了括号  这样就变成了函数  @实属不该
print1_twice(child)
#print1_twice(parent())  类似于这样
#鸭子类型当类型相似,即都拥有get_name()即为相似的走路姿势,只要有get_name()这个函数就被看作是 鸭子, 姿势像鸭子就是鸭子
#print1_twice(dog())

 

原文:https://www.cnblogs.com/miaorn/p/11628067.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!