接口与类的关系(一)
1.一个类继承一个接口
//接口命名以“I”开头
interface IFly
{
void Fly(); //这里不写内容,只声明函数;新版本c# 8.0支持写内容
}
class Bird : IFly
{
public void Fly() //这里写上public,实例化以后可以在Main中调用
{
Console.WriteLine("天高任鸟飞");
}
}
internal class Program
{
static void Main(string[] args)
{
Bird bird = new Bird(); //类的实例化
bird.Fly(); //调用已经实现的接口方法
}
}

2.一个类继承两个接口
//接口命名以“I”开头
interface IFly
{
void Fly(); //这里不写内容,只声明函数;新版本c# 8.0支持写内容
}
interface IEat
{
void Eat();//这里不写内容,只声明函数,新版本c# 8.0支持写内容
}
class Bird : IFly, IEat
{
public void Fly() //这里写上public,实例化以后可以在Main中调用
{
Console.WriteLine("天高任鸟飞");
}
public void Eat()
{
Console.WriteLine("壮士饥餐胡虏肉");
}
}
internal class Program
{
static void Main(string[] args)
{
Bird bird = new Bird(); //类的实例化
bird.Fly(); //调用已经实现的IFly接口方法
bird.Eat(); //调用已经实现的IEat接口方法
}
}

3.一个类继承三个接口
//接口命名以“I”开头
interface IFly
{
void Fly(); //这里不写内容,只声明函数;新版本c# 8.0支持写内容
}
interface IEat
{
void Eat();//这里不写内容,只声明函数,新版本c# 8.0支持写内容
}
interface IDrink
{
void Drink();//这里不写内容,只声明函数,新版本c# 8.0支持写内容
}
class Bird : IFly, IEat
{
public void Fly() //这里写上public,实例化以后可以在Main中调用
{
Console.WriteLine("天高任鸟飞");
}
public void Eat()
{
Console.WriteLine("壮士饥餐胡虏肉");
}
public void Drink()
{
Console.WriteLine("笑谈渴饮匈奴血");
}
}
internal class Program
{
static void Main(string[] args)
{
Bird bird = new Bird(); //类的实例化
bird.Fly(); //调用已经实现的IFly接口方法
bird.Eat(); //调用已经实现的IEat接口方法
bird.Drink();//调用已经实现的IDrink接口方法
}
}

4.两个类继承一个接口
//定义接口,开头以"I",遵循大驼峰命名法
//大驼峰命名法,常用于类名、函数名、接口名、命名空间名的定义,首字母大写,后面首字母也大写
//小驼峰命名法,常用于变量名、形参名、实例名的定义,首字母小写,后面单词首字母大写
interface ICanRun
{
void Run();
}
//定义骏马(骐骥)的类,继承ICanRun接口
class FineHorse : ICanRun
{
public void Run()
{
Console.WriteLine("骐骥一跃,不能十步;");
}
}
//定义驽马的类,继承ICanRun接口
class OldHorse : ICanRun
{
public void Run()
{
Console.WriteLine("驽马十驾,功在不舍。");
}
}
internal class Program
{
static void Main(string[] args)
{
FineHorse fineHorse = new FineHorse(); //实例名采用小驼峰命名法
OldHorse oldHorse = new OldHorse();
fineHorse.Run();//调用接口ICanRun的实现方法
oldHorse.Run();//调用接口ICanRun的实现方法
}
}

5.三个类继承一个接口
//定义一个春雨接口
interface ISpringRain
{
void SpringRain();
}
//定义诗人杜甫类
class DuFu : ISpringRain
{
public void SpringRain()
{
Console.WriteLine("好雨知时节,当春乃发生。");
Console.WriteLine("随风潜入夜,润物细无声。");
Console.WriteLine();
}
}
//定义浩然类
class HaoRan : ISpringRain
{
public void SpringRain()
{
Console.WriteLine("喜雨迎春到,晶晶映翠晴。");
Console.WriteLine("雨晴唤新绿,迟日暖人间。");
Console.WriteLine();
}
}
//定义诗人陆游类
class LuYou : ISpringRain
{
public void SpringRain()
{
Console.WriteLine("小楼一夜听春雨,深巷明朝卖杏花 ");
}
}
internal class Program
{
static void Main(string[] args)
{
DuFu duFu = new DuFu(); //实例化杜甫类
HaoRan haoRan = new HaoRan();//实例化浩然类
LuYou luYou = new LuYou(); //实例化陆游类
duFu.SpringRain();// 诗人杜甫遇春雨而喜
haoRan.SpringRain();//浩然迎春雨而悦
luYou.SpringRain();//陆游听春雨而兴
}
}

以上不足,请同学、老师批评指正。