已知一个时钟时间,隔若干分钟后具体时间是多少,运用继承和派生来写

已知一个时钟时间,隔若干分钟后具体时间是多少,运用继承和派生来写

以下是使用继承和派生来实现已知一个时钟时间,隔若干分钟后具体时间的代码示例:

class Clock:
    def __init__(self, hour, minute, second):
        self.hour = hour
        self.minute = minute
        self.second = second

    def __str__(self):
        return "{:02d}:{:02d}:{:02d}".format(self.hour, self.minute, self.second)

    def tick(self):
        self.second += 1
        if self.second == 60:
            self.second = 0
            self.minute += 1
            if self.minute == 60:
                self.minute = 0
                self.hour += 1
                if self.hour == 24:
                    self.hour = 0


class MyClock(Clock):
    def __init__(self, hour, minute, second, interval):
        super().__init__(hour, minute, second)
        self.interval = interval

    def after(self):
        # 计算隔interval分钟后的时间
        minute = self.minute + self.interval
        hour = self.hour + minute // 60
        minute = minute % 60
        hour = hour % 24
        return MyClock(hour, minute, self.second, self.interval)


# 测试代码
clock = MyClock(10, 30, 0, 5)
print(clock)
clock = clock.after()
print(clock)

以上代码定义了一个基类Clock表示时钟,包含了时、分、秒三个属性和一个tick方法用于模拟时钟的走时。然后定义了一个派生类MyClock表示具体时钟,除了继承基类Clock的属性和方法外,还添加了一个interval属性表示间隔多少分钟后。MyClock类还添加了一个after方法,用于计算隔interval分钟后的具体时间,并返回一个新的MyClock实例表示该时间。

在测试代码中,我们创建了一个MyClock实例表示当前时间为10:30:00,并间隔5分钟后输出具体时间。首先输出当前时间,然后调用after方法计算隔5分钟后的时间,并输出结果。输出结果为:

10:30:00
10:35:00

以上代码中,通过使用继承和派生来实现了复用基类Clock的代码,同时在MyClock类中添加了新的属性和方法来实现具体的业务需求。这样可以使代码更加简洁和可维护,同时也可以减少代码的重复。