定义一个抽象的Role类有姓名年龄性别爱好等成员变量要求尽可能隐藏所有变量(能够私有就私有)再通过Get()和Set()方法对各变量进行读写,其中龄必须在0到150岁性别必须是男或者女姓名必须是2个字

1 编程完成下题: (1)定义一个抽象的"Role"类,有姓名,年龄,性别,爱好等成员变量。 1)要求尽可能隐藏所有变量(能够私有就私有); 2)再通过GetXXX()和SetXXX()方法对各变量进行读写,其中: * 年龄必须在0到150岁; * 性别必须是男或者女; * 姓名必须是2个字到4个字。 3)定义一个play()方法,该方法不返回任何值,输出一个字符串,格式如下:“我叫XXX,性别X,我今年X岁了,我喜欢XXX。” 4)定义两个构造方法,一个无参数,一个有4个参数。 (2)从Role类派生出一个"Employee"类,该类具有Role类的所有成员,并扩展salary成员变量。 1)同时增加一个静态成员变量“职工编号(ID)”; 2)至少有两个构造方法,要体现出super的用法; 3)覆盖play()方法,输出一个字符串,格式如下:“我叫XXX,工号是X,性别X,我今年X岁了,我喜欢XXX,我的薪资是XXX。” (3)“Manager"类继承"Employee"类。 1)新增一个类成员变量"vehicle”(vehicle为交通工具的意思); 2)覆盖play()方法。 (4)测试Manager和Employee。

class Role(object):
    id = '您还没有输入职工编号呦~'
    def __init__(self, name, age, sex, hobby):
        self.__name = name
        self.__age = age
        self.__sex = sex
        self.__hobby = hobby

    def get_name(self):
        return self.__name
    def set_name(self, name):
        if 2 <= len(name) <= 4:
            self.__name = name

    def get_age(self):
        return self.__age
    def set_age(self, age):
        if age > 0 and age < 150:
            self.__age = age

    def get_sex(self):
        return self.__sex
    def set_sex(self, sex):
        if sex == '男' or sex == '女':
            self.__sex = sex

    def get_hobby(self):
        return self.__hobby
    def set_hobby(self, hobby):
        self.__hobby = hobby

    def play(self):
        print('我叫:{}, 性别:{}, 我今年:{}岁了, 我喜欢:{}。'.format(self.get_name(),
                             self.get_sex(), self.get_age(), self.get_hobby()))

class Employee(Role):
    def __init__(self, name, age, sex, hobby, salary):
        super().__init__(name, age, sex, hobby)
        self.__salary = salary

    def get_salary(self):
        return self.__salary
    def set_salary(self, salary):
        self.__salary = salary

    @staticmethod
    def ID(id):
        id = input('请输入您的职工编号:')
        return id

    def DiaoYong_staticmethod(self):
        self.id = self.ID(id)

    def play(self):
        print('我叫:{}, 职工编号是:{}, 性别:{}, 我今年:{}岁了, 我喜欢:{}, 我的薪资是:{}。'.format(self.get_name(),
                    self.id, self.get_sex(), self.get_age(), self.get_hobby(), self.get_salary()) + '\n')

class Manager(Employee):
    def __init__(self, name, age, sex, hobby, salary, vehicle):
        super().__init__(name, age, sex, hobby, salary)
        self.__vehicle = vehicle

    def get_vehicle(self):
        return self.__vehicle
    def set_vehicle(self, vehicle):
        self.__vehicle = vehicle

    def play(self):
        print('我叫:{}, 职工编号是:{}, 性别:{}, 我今年:{}岁了, 我喜欢:{}, 我的薪资是:{}, '
              '交通工具是:{}。'.format(self.get_name(),self.id, self.get_sex(), self.get_age(),
                                 self.get_hobby(), self.get_salary(), self.get_vehicle()))


if __name__ == '__main__':
    print('Employee测试(调用职工编号):')
    Cyg = Employee('曹有根', 21, '男', '看动漫', 6000)
    Cyg.DiaoYong_staticmethod()
    Cyg.play()
    print('Manager测试(不调用职工编号):')
    C_yg = Manager('曹有根', 21, '男', '看动漫', 6000, '私家车')
    # C_yg.DiaoYong_staticmethod()
    C_yg.play()

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七@归七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值