c#多态来模拟移动硬盘、U盘、MP3查到电脑上读取数据移动硬盘与U盘都属于存储设备,MP3属于播放设备,但他们者都能插在电脑上传输数据电脑提供了一个USB接口,请实现电脑的传输数据的功能
时间: 2024-04-16 16:24:34 浏览: 22
可以通过多态来实现电脑传输数据的功能。首先,创建一个基类 `StorageDevice` 表示存储设备,从该基类派生出 `HardDisk`(移动硬盘)和 `USB`(U盘),另外创建一个 `MediaPlayer` 类表示播放设备。
```csharp
public class StorageDevice
{
public virtual void TransferData()
{
Console.WriteLine("使用 USB 接口传输数据");
}
}
public class HardDisk : StorageDevice
{
public override void TransferData()
{
Console.WriteLine("使用 USB 接口传输数据 - 移动硬盘");
}
}
public class USB : StorageDevice
{
public override void TransferData()
{
Console.WriteLine("使用 USB 接口传输数据 - U盘");
}
}
public class MediaPlayer
{
public void PlayMusic()
{
Console.WriteLine("播放音乐");
}
}
```
然后,创建一个 `Computer` 类表示电脑,该类有一个方法 `TransferDataFromDevice()` 用于从存储设备传输数据。
```csharp
public class Computer
{
public void TransferDataFromDevice(StorageDevice device)
{
device.TransferData();
}
}
```
你可以使用这些类进行测试:
```csharp
Computer computer = new Computer();
HardDisk hardDisk = new HardDisk();
USB usb = new USB();
MediaPlayer mp3 = new MediaPlayer();
computer.TransferDataFromDevice(hardDisk);
computer.TransferDataFromDevice(usb);
computer.TransferDataFromDevice(mp3); // 由于 MP3 不属于存储设备,无法传输数据
```
输出结果为:
```
使用 USB 接口传输数据 - 移动硬盘
使用 USB 接口传输数据 - U盘
使用 USB 接口传输数据
```
注意,在这个例子中,我们使用了多态来实现了电脑传输数据的功能。通过将不同的存储设备对象作为参数传递给 `TransferDataFromDevice()` 方法,可以根据实际对象的类型执行相应的传输数据操作。而对于不属于存储设备的播放设备(如 MP3),无法进行数据传输操作。