python学习之继承和多态

Posted miaorn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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())

 

以上是关于python学习之继承和多态的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之封装

Python学习之面向对象进阶

Python 学习之《Learn Python3 The Hard Way 》第七部分学习笔记

java学习之继承多态

python学习之对象的三大特性

python学习之面向对象程序设计的一些思考