移动设备包括很多种,他们的共同特点就是可以读写,可以写一个具有读写功能的父类(抽象类);然后子类继承并实现各自的读写功能。在声明子类对象时,将子类赋值给父类,通过该父类读写方法直接可以调用子类各自读写方法。
Program1:
namespace what
{
class Program
{
static void Main(string[] args)
{
Ustorage us = new Ustorage();
MPstorage mp = new MPstorage();
ComputerDev cd = new ComputerDev();
cd.DE = us; // 把子类直接给父类,其他类 利用 父类调用函数
cd.ReadD();
Console.ReadKey();
}
}
}
Device.cs:
namespace what
{
public abstract class DevcieFather // 写一个读写的父类,两个方法
{
public abstract void ReadDevice();
public abstract void WriteDevice();
}
}
Ustorage.cs
namespace what
{
public class Ustorage:DevcieFather //继承父类
{
public override void ReadDevice()
{
Console.WriteLine("U device read");
}
public override void WriteDevice()
{
Console.WriteLine("U device write");
}
}
}
MPstorage.cs
namespace what
{
public class MPstorage : DevcieFather //继承父类
{
public override void ReadDevice()
{
Console.WriteLine("Mp3 device read");
}
public override void WriteDevice()
{
Console.WriteLine("MP3 device write");
}
public void PlayMusic()
{
Console.WriteLine("Play the music");
}
}
}
Computer.cs
namespace what // 跟父类没有继承关系 ,父类是其一个属性;用字段表示也可以
{
public class ComputerDev
{
public DevcieFather DE // 父类是其中的一个子类
{
get;
set;
}
public void ReadD()
{
this.DE.ReadDevice();
}
public void WriteD()
{
this.DE.WriteDevice();
}
}
}