189 8069 5689

类的继承和类继承运用-创新互联

```通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。

继承概念的实现方式主要有2类:实现继承、接口继承。
1、实现继承是指使用基类的属性和方法而无需额外编码的能力;
2、接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力(子类重构爹类方法);

## 最简单的继承
class person(object):
    def talk(self):
        print('talk english....')

class ypeople(person):
    # def talk(self):   #要是没有重新定义talk会调用父类里的talk
         print("talk chinese")
    def walk(self):
        print("yperson is runing....")

b=ypeople()
b.talk()
b.walk()

## 先继承再重构
class person(object): 父类
    def __init__(self,name,age):
        self.name=name
        self.age=age
        self.sex="normal"

    def talk(self):
        print('talk english....')

class bperson(object):
    pass

class ypeople(person):
    def __init__(self,name,age,strength): #先继承,再重构
        person.__init__(self,name,age)
        self.www="www"
        print(self.name,self.age,self.sex)
    def talk(self):   #要是没有重新定义talk会调用父类里的talk
        person.talk(self) #继承方法(一般不这么做,重复执行)
        print("talk chinese")
    def walk(self):
        print("yperson is working...")

b=ypeople("王东",30,"strong")
b.talk()
b.walk()

## 类的继承运用例子
class School(object):
    """"学校成员基类"""
    number=0
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
        self.enroll() #在基类里内部调用(相当于子类默认调用)

    def enroll(self):
        """注册"""
        print("%s欢迎加入我们学院!"%self.name)
        School.number+=1 #把值赋给公有属性(变成全局的)直接self.number只是在实例里面创建了一个变量number=0然后加1
    def tell(self):
        """打印自己的信息"""
        print("------info:%s-------"%self.name)
        for k,v in self.__dict__.items():
            print("\t",k,v)
        print("------end-------" )

    def __del__(self):  # 析构
        print("[%s] 被开除了!"%self.name)
        School.number-=1

class newschool(object):
    def openschool(self,addr):
        print("open in the %s"%addr)

class Teacher(School,newschool): # 多继承(继承多个类)
    """讲师类"""
    def __init__(self,name,age,sex,salary,course):
        #School.__init__(self,name,age,sex) #经典类
        super(Teacher,self).__init__(name,age,sex) # 新式类
        self.salary=salary
        self.coures=course

    def teaching(self):
        print("Teacher [%s] is teaching [%s]"%(self.name,self.coures))

class Student(School):
    """学生类"""
    def __init__(self,name,age,sex,course,fee):
        School.__init__(self,name,sex,age)
        self.course=course
        self.fee=fee
        self.amount=0

    def pay_fee(self,amount):
        print("student [%s] has just paid [%s]"%(self.name,self.amount))
        self.amount+=amount
t1=Teacher("王肖",29,'F*M',20000,"Python")
s1=Student("王鼎",26,"N/A",'Python',30000)
s2=Student("苏晓",22,"F","Python",5000)

print(School.number) #输出总共创建次数
print(t1.number) #输出t1实例本身创建次数
print(School.number) #输出总共创建次数
del s1 #删除s1
print(School.number) #输出总共创建次数
a=s1.__dict__ #把信息转换成列表
print(a)
t1.tell()
t1.openschool("上海") #多继承测试

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为罗定企业提供专业的网站设计制作、成都网站设计罗定网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
本文标题:类的继承和类继承运用-创新互联
链接URL:http://cdxtjz.cn/article/ceojjs.html

其他资讯