题目:已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。

已知Person类如下:

class Person(object):
    # Person类的构造方法,参数:姓名,年龄,性别
    def __init__(self,name='',age=20,sex='man'):
        self.setName(name)
        self.setAge(age)
        self.setSex(sex)
    # setName方法用于设置姓名
    def setName(self, name):
        if not isinstance(name, str):
            print('name must be string.')
            return
        self.__name=name
    # setAge方法用于设置年龄
    def setAge(self, age):
        if not isinstance(age, int):
            print('age must be integer.')
            return
        self.__age=age
    # setSex方法用于设置性别
    def setSex(self, sex):
        if sex not in ('man', 'woman'):
            print('sex must be "man" or "woman"')
            return
        self.__sex=sex
    # show方法用于显示姓名,年龄,性别
    def show(self):
        print('Name:', self.__name)
        print('Age:', self.__age)
        print('Sex:', self.__sex)

Teacher类继承Person类,新增参数:科目:

class Teacher(Person):
    # Teacher类的构造方法,参数:姓名,年龄,性别,科目(前三个参数继承自父类)
    def __init__(self,name='',age=30,sex='man',department='Computer'):
        super(Teacher,self).__init__(name,age,sex)
        ##or,use another method like:Person.__init__(name,age,sex)
        self.setDepartment(department)
    # setDepartment方法用于设置科目
    def setDepartment(self,department):
        if not isinstance(department,str):
            print('department must be a string.')
            return
        self.__department=department
    # show方法用于显示姓名,年龄,性别,科目
    def show(self):
        super(Teacher, self).show()
        print('Department:',self.__department)

Student类继承Person类,新增参数:专业

class Student(Person):
    # Student类的构造方法,参数:姓名,年龄,性别,专业(前三个参数继承自父类)
    def __init__(self,name='',age=30,sex='man',major='Software'):
        super(Student,self).__init__(name,age,sex)
        ##or,use another method like:Person.__init__(name,age,sex)
        self.setMajor(major)
    # setMajor方法用于设置专业
    def setMajor(self,major):
        if not isinstance(major,str):
            print('major must be a string.')
            return
        self.__major=major
    # show方法用于显示姓名,年龄,性别,专业
    def show(self):
        super(Student, self).show()
        print('Major:',self.__major)

main函数如下:

if __name__ == '__main__':
    # 父类Person对象
    zhangsan=Person('zhang San',10,'man')
    zhangsan.show()
    # 子类Teacher对象
    lisi=Teacher('Li Si',30,'woman','Math')
    lisi.show()
    # 子类Student对象
    wangwu=Student('Wang Wu',18,'man','Software')
    wangwu.show()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐