模拟移动存储设备的读写方案二
方案二:定义抽象类MobileStorage,在里面写虚方法Read和Write,三个存储设备继承此抽象类,并重写Read和Write方法。Computer类中包含一个类型为MobileStorage的成员变量,并为其编写get set器,这样Computer中只需要两个方法:ReadData和WriteData,并通过多态性实现不同移动设备的读写。
class abstract MobileStorage{
abstract Read()
abstract Writer()
}
FlashDisk:MobileStorage{
override Read()
override Writer()
}
MP3Player:MobileStorage{}
MobileHardDisk:MobileStorage{}
Main()
{
MobileStorage b= new FlashDisk()
b.Read()
b.Writer()//实现了FlashDisk读和写。父类需要取值时直接找对应的子类方法就可以,提高了通用性
}
它的调用是直线的,从上到下。接口可以分解组合,更灵活。