python版本:2.7
环境:ubuntu系统vim编辑器
#coding=utf-8
class River(object):
def sound(self):
print u'哗啦啦'
def test(self):
print 'River_test'
class Yellow_River(River):
def __init__(self,length=0):
self.__length = length
def __test(self):#私有方法、属性不会被子类继承
print self.__length#子类可通过继承的公有方法对私有方法、属性操作
def test(self):
self.__test()
def sound(self):
print u'怒吼!咆哮!'
River.sound(self)#调用父类方法
class Cou_shu():#为实现多继承而凑数的父类
def test(self):
print 'coushu_test'
class Fen_he(Yellow_River,Cou_shu):
def sound(self):
print u'叮咚'
super(Fen_he,self).sound() #调用父类方法,此处为python2写法
#python3写法:super().sound()
def fun(obj):#python鸭子类型实现多态
obj.test()
a = Fen_he()
a.sound()
print Fen_he.__mro__ #查看Fen_he类的对象搜索方法时的先后顺序(通过C3算法)
a.test()
b = River()
fun(b)
c = Cou_shu()
fun(c)
运行结果如下图: