• 简明python教程七----面向对象的编程(下)


    继承:类之间的类型和子类型关系

    代码重用:SchoolMember类被称为 基本类或超类,而Teacher和Student类被称为导出类或者子类

    #!/usr/bin/python
    #Filename:Inherit.py
    
    class SchoolMember:
        'Represents any school member.'
        def __init__(self,name,age):
            self.name = name
            self.age = age
            print '(Initialized SchoolMember:%s)' %self.name
    
        def tell(self):
            'Tell my details.'
            print 'Name:"%s" Age:"%s"'%(self.name,self.age)
    
    class Teacher(SchoolMember):
        'Represents a teacher.'
        def __init__(self,name,age,salary):
            SchoolMember.__init__(self,name,age)
            self.salary = salary
            print '(Initialized Teacher:%s)' %self.name
    
        def tell(self):
            SchoolMember.tell(self)
            print 'Salary: "%d"'%self.salary
    
    class Student(SchoolMember):
        'Represents a student.'
        def __init__(self,name,age,marks):
            SchoolMember.__init__(self,name,age)
            self.marks=marks
            print '(Initialized Student:%s)'%self.name
    
        def tell(self):
            SchoolMember.tell(self)
            print 'Marks:"%d"'%self.marks
    
    
    t=Teacher('Mrs.Shrividya',40,30000)
    s=Student('Swaroop',22,75)
    
    print #prints a blank line
    
    members = [t,s]
    for member in members:
        member.tell()

    结果:

    (Initialized SchoolMember:Mrs.Shrividya)
    (Initialized Teacher:Mrs.Shrividya)
    (Initialized SchoolMember:Swaroop)
    (Initialized Student:Swaroop)
    
    Name:"Mrs.Shrividya" Age:"40"
    Salary: "30000"
    Name:"Swaroop" Age:"22"
    Marks:"75"

    注意:为了使用继承,把基本类的名称作为一个元组跟在定义类时的类名称之后。

    基本类的__init__方法专门使用self变量调用,这样我们就可以初始化对象的基本类部分。

    记住:python不会自动调用基本类的constructor,需要亲自专门调用它。

  • 相关阅读:
    采购申请 POCIRM-001:ORA-01403: 未找到任何数据
    前后端交互技术有哪些
    React实现类似淘宝tab居中切换效果
    CSS通过text-transform实现大写、小写和首字母大写转换
    从浏览器内部运行机制看性能优化
    设置网页浏览器标签小图标
    前后端分离的优缺点
    修改input搜索框默认叉号的样式为自定义图片
    编写优秀CSS代码的8个策略
    css如何设置不可复制?
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/6420662.html
Copyright © 2020-2023  润新知