您的位置:首页 > 编程语言 > Python开发

Python 封装,继承,多态

2017-05-27 15:32 489 查看

继承

继承就是复制父类的内容,到子类里面

In [1]: class Animal(object):
...:     def __init__(self,name):
...:         self.name=name
...:     def speak(self):
...:         print("animal")
...:
...: class Cat(Animal):
...:     pass

In [2]: tom=Cat("tom")

In [3]: tom.name
Out[3]: 'tom'

In [4]: tom.speak()
animal


1. 私有方法和属性,不能被子类继承和访问

2. 子类和各个父类中如果有相同方法,优先调用自己,然后向上寻找最近父类(如果父类有平行类,则按继承顺序从左至右继承,可以用__mro__来查看继承顺序)“覆盖”一词用的并不好,并没有“覆盖”掉,只是调用的顺序不同。

3. 调用被重写父类的方法有两种

3.1. super().func()

3.2. name.func(self)

4. 调用父类同名方法的一个应用就是私有方法和属性不会被继承,但可以通过父类中调用私有方法的方法来调用父类的私有方法

多态

多态就是参数虽然设置为父类的类型,但仍可以传入其子类的类型

因为python 不能声明参数类型(动态语言),所以对多态体现的不强,而其使用的是鸭子类型(“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: