zoukankan      html  css  js  c++  java
  • python学习之继承和多态

    #!/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())
  • 相关阅读:
    559. N叉树的最大深度
    999. 车的可用捕获量
    1051. 高度检查器
    238. 除自身以外数组的乘积
    【Go】Go语言的%d,%p,%v等占位符的使用
    【Java】commons-lang3中DateUtils类方法介绍
    【Java】时间戳与Date相互转换
    【Linux】crontab定时任务用用法
    【Java】使用Lambda排序集合
    【PBFT】拜占庭容错
  • 原文地址:https://www.cnblogs.com/miaorn/p/11628067.html
Copyright © 2011-2022 走看看