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
*************************************************************************************************************************************************************************************************************************重载扩展****************************************************
重载:函数名相同,参数个数不同
重写:跟继承差不多
对于其他语言的接口 只是一个约束的作用 接口中的方法在继承之后必须执行
                    
                
                
            
        
浙公网安备 33010602011771号