<img src="https://p-blog.csdn.net/images/p_blog_csdn_net/perisenjut/EntryImages/20091024/TM截图未命名.png"></img>
为一个函数编写一些代码,接受上述实例的两个杯子对象中的一个,作为一个参数。此函数可以为它传送的任何杯子对象调用Addmilk()、drink()、wash()方法
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
//--------------------------------------------------------------------
public interface ICup // 定义接口
{
void Wash(); // 空方法
}
//--------------------------------------------------------------------
public abstract class HotDrink // 抽象类
{
public abstract void Drink(); // 声明抽象方法
public abstract void AddMilk(); // 声明抽象方法
}
//--------------------------------------------------------------------
public class CupOfCoffee : HotDrink, ICup // 继承于抽象类与接口
{
public string dd; // 声明字段
public string aa;
public string ww;
public CupOfCoffee( string d, string a, string w ) // 构造函数
{
dd = d; // 初始字段
aa = a;
ww = w;
}
public override void Drink() // 重写方法
{
Console.WriteLine( "想喝什么? {0}", dd );
Console.WriteLine();
}
public override void AddMilk() // 重写方法
{
Console.WriteLine( "想加奶吗? {0}", aa );
Console.WriteLine();
}
public void Wash() // 实现接口中的方法
{
Console.WriteLine( "要洗手吗? {0}", ww );
Console.WriteLine();
}
}
//--------------------------------------------------------------------
public class CupOfTea : HotDrink, ICup // 继承于抽象类与接口
{
public string dd; // 声明字段
public string aa;
public string ww;
public CupOfTea( string d, string a, string w ) // 构造函数
{
dd = d; // 初始字段
aa = a;
ww = w;
}
public override void Drink() // 重写方法
{
Console.WriteLine( "想喝什么? {0}", dd );
Console.WriteLine();
}
public override void AddMilk() // 重写方法
{
Console.WriteLine( "想加奶吗? {0}", aa );
Console.WriteLine();
}
public void Wash() // 实现接口中的方法
{
Console.WriteLine( "要洗手吗? {0}", ww );
Console.Read();
}
}
//--------------------------------------------------------------------
class Program
{
static void Main(string[] args)
{
CupOfCoffee aa = new CupOfCoffee( "咖啡", "可以", "谢谢!" );
aa.Drink();
aa.AddMilk();
aa.Wash();
CupOfTea bb = new CupOfTea( "绿茶", "少来", "狗屁!" );
bb.Drink();
bb.AddMilk();
bb.Wash();
}
}
//--------------------------------------------------------------------
}