#继承 下划线开头表示私有
class Human:
def __init__(self,name): #init是初始化方法 self是实例化对象的本身 本质是一块内存
self.name=name
print('self->',self)
#self.__xjb=name #下划线表示是私有的
def speak(self):
print('Human在讲话'+self.name)
def __test(self): #定义一个私有的类也是一样的
print('ceshi')
class XJB(Human):#继承只需要在里面写上一个我们所需要的类
def __init__(self,name):
self.xjb=name;
super(XJB,self).__init__(name) #通过super调用init方法
#self.__init__(name) #调用自己会导致递归
#XJB中init存在就不会想Human去匹配了 就是调用自己
def speak(self):
print('跑路')
#self.speak() #直接调用
super(XJB,self).speak()
def speak(obj):
obj.speak()
#def speak(self):
#print('xjb在讲话'+self.name)
x1=XJB("xjb")
x2=Human("xjb2")
#x1.speak()
speak(x1) #相同一个函数 相同一个格式放进去 但是表现出不同的形态 这就是多态
speak(x2)
#print(x1.__xjb) #是打印不出来的
#print(x1.__test())