1.建立通信设备基类ComDevice,一个通讯设备,要具有的属性 name、type、network、要具有的功能:call()
时间: 2024-02-03 16:03:42 浏览: 64
好的,针对您的问题,我可以给您提供以下的代码实现:
```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}")
```
这是一个基类 `ComDevice`,它包含了设备的名称 `name`、设备类型 `type`、网络类型 `network`属性和通话功能 `call()`。这个类不包含任何具体的设备,只是定义了通用的属性和方法。如果你需要创建一个具体的设备(比如手机、电脑、路由器等),可以通过继承这个基类来创建。
相关问题
1.建立通信设备基类ComDevice 一个通讯设备,要具有的属性 name type network 要具有的功能 call() 2. 修改手机类MobilePhone 手机类,以public方式继承通讯设备类 在其中,只保留与手机相关的属性 在其中,覆盖父亲类的call函数 3. 建立家用固定电话类Telephone 思考:家用固定电话有什么特点? 有固定的地址。没有屏幕。有号码。没有通讯录和天气 4. 建立公用电话类PublicPhone 公共电话类有何特点? 和家用电话很类似,但多了收费标准,以及收费方法。 写一个main函数 创建王小强,拥有手机A。 王小强家里有固定电话B。 王小强楼下小卖部有公用电话C。 王小强用手机给“李大花”打电话。 王小强用家用电话给“李大花”打电话。 王小强用公用电话给“李大花”打电话。
好的,以下是根据您的要求编写的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()` 函数中,我们创建了一个手机、一个家用固定电话和一个公用电话,并分别使用它们给一个名叫李大花的人打电话。在使用公用电话打电话的时候,我们还计算了通话的花费,并输出到屏幕上。
阅读全文