07 Python类的基本特性

#继承  下划线开头表示私有
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())

posted @ 2023-11-10 17:51  wakappxc  阅读(3)  评论(0编辑  收藏  举报  来源