namespace 接口和抽象类
{
/// <summary>
/// 载客
/// </summary>
interface IpassengerCarrierable
{
void Passenger();
}
/// <summary>
/// 载货
/// </summary>
interface IHeavyLoadCarrierable
{
void Cargo();
}
/// <summary>
/// 车类
/// </summary>
abstract class Vehicle
{
public string Color { get; set; }
public string Type { get; set; }
public double Money { get; set; }
public abstract void Start();
public abstract void Run();
public abstract void Stop();
public void CanRunInRoad()
{
Console.WriteLine("该工具正行驶在公路上!");
}
}
abstract class Car : Vehicle
{
public override void Start()
{
Console.WriteLine("该轿车正在启动中!");
}
public override void Run()
{
Console.WriteLine("该轿车正在行驶中!");
}
public override void Stop()
{
Console.WriteLine("该轿车正在抛锚中!");
}
}
abstract class Train : Vehicle
{
public override void Start()
{
Console.WriteLine("火车发动中!");
}
public override void Run()
{
Console.WriteLine("火车运行中!");
}
public override void Stop()
{
Console.WriteLine("火车停止运行了!");
}
}
class Compact : Car,IpassengerCarrierable
{
public void Passenger()
{
Console.WriteLine("小polo正在载客!");
}
}
class FreightTrain : Train, IHeavyLoadCarrierable
{
public void Cargo()
{
Console.WriteLine("该趟列车正在载货中!");
}
}
class Program
{
static void Main(string[] args)
{
Compact c= new Compact();
c.Color = "黄色";
c.Type = "紧凑型小polo";
c.Money = 120000;
Console.WriteLine("这辆{0}{1}大概{2}钱,",c.Color ,c.Type ,c.Money);
c.CanRunInRoad();
c.Start();
c.Run();
c.Passenger();
c.Stop();
Console.WriteLine();
FreightTrain f = new FreightTrain();
f.Color = "绿色";
f.Type = "载货列车";
f.Money = 1000000;
Console.WriteLine("这辆{0}{1}大概{2}钱,", f.Color, f.Type, f.Money);
f.Start();
f.Run();
f.Cargo();
f.Stop();
Console.ReadKey();
}
}
}
![]() |
|
来自: 空城66 > 《抽象类部分实现,接口隐式实现》