面向对象多态及其继承

原文链接: http://www.cnblogs.com/cangshuchirou/p/8528948.html

微博方面
1.继承是一种创建新类的方式,在python中,新建的类可以继承一个或者多个
父类,又可称为基类或超类,新建类称为派生类或者子类
2.继承分为单继承和多继承
3.查看继承需要用__bases__方法
object是所有类的基类

 

 

多态
1.多态指一切事物有多种形态
动物形态有:人 狗 猪
from abc import ABCMeat,abscractmethod
class Animal(metaclass=ABCMeta):
@abscractmethod
def talk(self):
pass
class People(Animal):
def talk(self):
print("hello")
class Dog(Animal):
def talk(self):
print("wangwang")

2.多态的使用不用考虑实例的类型,从而使用实例
peo=People()
dog=Dog()
不必考虑类型直接使用.
peo.talk()
dog.talk()
使用接口
def func(obj):
obj.talk()

书籍方面
begging python from novice to professional
P113多态
7.11
就算不知道变量所引用的对象类型是什么,还是能对他进行操作,而他也会根据对象(或者类)
类型的不同和表现出不同的行为.
对象可以自己进行操作

1.多态和方法
程序接收一个对象,完全不了解该对象的内部实现方式---他可能有多种"形状".
多态和方法相似,只要有个参数值,返回值就可以了,并不用检测类型
2.多态的多种形式
任何不知道对象到底是什么类型,但是又要对对象做点什么的时候,都会用到多态
repr函数是多态的代表之一 返回一个字符串供解释器读取
repr([123])#结果为"[123]"

毁掉多态
1.用type isinstance issubclass 函数查看数据类型.

 

封装
封装是指向程序中的其他部分隐藏对象的具体实现细节的原则.


继承

继承目的是减少代码

类的命名空间

查看父类运用__bases__


查看子类用 issubclass 查看一个类是否是另一个类的子类.
isinstance方法用于检查一个对象是否是一个类的实例

__class__可以查看一个对象属于哪个类


mro广度算法来判定访问超类的顺序


接口
在处理多态的对象时,只要关心他的接口(或者称协议)即可

转载于:https://www.cnblogs.com/cangshuchirou/p/8528948.html

你可能感兴趣的:(面向对象多态及其继承)