Pyhton_63面向对象之继承

1、dog 继承 animals

class animals:
def chi(self):
print (self.name+'吃')
def he(self):
print (self.name+'喝')

class dog(animals):
def __init__(self,name):
self.name=name
def jiao(self):
print (self.name+'汪')


ll=dog('GGG')
ll.chi()
ll.jiao()
ll.he()
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

GGG吃
GGG汪
GGG喝

 

 animals是父类,狗是继承出来的子类

 

*******************************************************************************************************************************************************************************************************************************************************************************************************

单继承

class animals:
def chi(self):
print (self.name+'吃')
def he(self):
print (self.name+'喝')
def kan(self):
print (self.name+'看电视')

class dog(animals):
def __init__(self,name):
self.name=name
def jiao(self):
print (self.name+'汪')
def kan(self):
print (self.name+'不看电视')


ll=dog('GGG')
ll.chi()
ll.jiao()
ll.he()
ll.kan()
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

GGG吃
GGG汪
GGG喝
GGG不看电视

当派生类和基类都存在时,优先执行派生类

******************************************************************************************************************************************************************************************************************************************************************************************************

多继承,JAVA  c  C#中一个子类可以继承只可以继承一个父类

在Python中,一个子类可以继承多个父类

class animals:
def chi(self):
print (self.name+'吃')
def he(self):
print (self.name+'喝')
def kan(self):
print (self.name+'看电视')
class yu:
def youyong(self):
print (self.name+'游泳十公里')
def chi(self):
print (self.name+'鱼吃')


class dog(animals,yu):
def __init__(self,name):
self.name=name
def jiao(self):
print (self.name+'汪')
def kan(self):
print (self.name+'不看电视')


ll=dog('GGG')
ll.chi()
ll.jiao()
ll.he()
ll.kan()
ll.youyong()
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

GGG吃
GGG汪
GGG喝
GGG不看电视
GGG游泳十公里

 

对于不重复的默认都继承下来了,对于重复的优先找自己   找第一个继承的类=最左边的类(包含他继承的其他类)   依次往右(包含其继承的父类)

*****************************************************************************************************************************************************************************************************************************************************************************************

class animals:
def chi(self):
print (self.name+'吃')
def he(self):
print (self.name+'喝')
def kan(self):
print (self.name+'看电视')
class yu:
def youyong(self):
print (self.name+'游泳十公里')
def chi(self):
print (self.name+'鱼吃')
def he(self):
print (self.name+'鱼汤')

class dog(animals):
def __init__(self,name):
self.name=name
def jiao(self):
print (self.name+'汪')
def kan(self):
print (self.name+'不看电视')
class dog1(dog,yu):
def chi(self):
print (self.name+'狗1吃吃')

ll=dog1('GGG')
ll.chi()
ll.jiao()
ll.he()
ll.kan()
ll.youyong()
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

GGG狗1吃吃
GGG汪
GGG喝   继承的是animals的方法
GGG不看电视
GGG游泳十公里

***********************************************************************************************************************************************************************************************************************************************************************************************

 类的多态:类的多种形态

class Foo:
def f1(self):
print('F00foo')
class Bar:
def f1(self):
print ('F01bar')
f=Foo()
f.f1()
b=Bar()
b.f1()
def func(arg):
arg.f1()
func(Foo())
func(Bar())
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

F00foo
F01bar
F00foo
F01bar

*************************************************************************************************************************************************************************************************************************重载扩展****************************************************

重载:函数名相同,参数个数不同

重写:跟继承差不多

对于其他语言的接口  只是一个约束的作用  接口中的方法在继承之后必须执行

 

posted on 2018-05-23 17:38  JuGooLar  阅读(96)  评论(0)    收藏  举报

导航