1.建立通信设备基类ComDevice 一个通讯设备,要具有的属性 name type network 要具有的功能 call() 2. 修改手机类MobilePhone 手机类,以public方式继承通讯设备类 在其中,只保留与手机相关的属性 在其中,覆盖父亲类的call函数 3. 建立家用固定电话类Telephone 思考:家用固定电话有什么特点? 有固定的地址。没有屏幕。有号码。没有通讯录和天气 4. 建立公用电话类PublicPhone 公共电话类有何特点? 和家用电话很类似,但多了收费标准,以及收费方法。 写一个main函数 创建王小强,拥有手机A。 王小强家里有固定电话B。 王小强楼下小卖部有公用电话C。 王小强用手机给“李大花”打电话。 王小强用家用电话给“李大花”打电话。 王小强用公用电话给“李大花”打电话。
时间: 2024-02-14 20:02:59 浏览: 69
好的,以下是根据您的要求编写的Python代码实现:
```python
class ComDevice:
def __init__(self, name, device_type, network):
self.name = name
self.type = device_type
self.network = network
def call(self, number):
print(f"{self.name} is calling {number}")
class MobilePhone(ComDevice):
def __init__(self, name, network):
super().__init__(name, "Mobile Phone", network)
def call(self, number):
print(f"{self.name} is calling {number} using mobile network")
class Telephone(ComDevice):
def __init__(self, name, network, address):
super().__init__(name, "Telephone", network)
self.address = address
def call(self, number):
print(f"{self.name} is calling {number} using landline network")
class PublicPhone(Telephone):
def __init__(self, name, network, address, charge_rate):
super().__init__(name, network, address)
self.charge_rate = charge_rate
def call(self, number, duration):
cost = duration * self.charge_rate
print(f"{self.name} is calling {number} using public phone, cost is {cost}")
def main():
mobile_phone = MobilePhone("Mobile Phone A", "4G")
telephone = Telephone("Telephone B", "Landline", "1234 Main Street")
public_phone = PublicPhone("Public Phone C", "Landline", "In front of the convenience store", 0.5)
xiaohua_number = "123456789"
mobile_phone.call(xiaohua_number)
telephone.call(xiaohua_number)
public_phone.call(xiaohua_number, 5)
if __name__ == "__main__":
main()
```
在上面的代码中,我们首先定义了 `ComDevice` 基类,包含了通讯设备的基本属性和方法。然后我们定义了继承自 `ComDevice` 的 `MobilePhone` 手机类,覆盖了父类的 `call()` 方法。接着我们定义了继承自 `ComDevice` 的 `Telephone` 家用固定电话类,增加了地址属性,并且同样覆盖了父类的 `call()` 方法。最后我们定义了继承自 `Telephone` 的 `PublicPhone` 公用电话类,增加了收费标准和收费方法。
在 `main()` 函数中,我们创建了一个手机、一个家用固定电话和一个公用电话,并分别使用它们给一个名叫李大花的人打电话。在使用公用电话打电话的时候,我们还计算了通话的花费,并输出到屏幕上。
阅读全文