c# 第37节 接口的实现与继承
2021-04-19 11:28
标签:div open 派生 for ## bsp gpo col click 本节内容: 1:接口继承注意 2:开发封闭原则: 3:实例解释接口的作用 类的实现 接口IFlyable: 输出: c# 第37节 接口的实现与继承 标签:div open 派生 for ## bsp gpo col click 原文地址:https://www.cnblogs.com/hero799/p/8670893.html1:接口继承注意
接口的继承:
1:类继承具有单根性,接口可多重继承;
2:接口继承多个接口的时候,派生接口名与父接口用冒号隔开,多个父接口之间用逗号隔开。
3:派生接口想要重写继承接口的方法或者属性行,要用关键字new ;
2:开发封闭原则:
开发封闭原则:
定义:软件实体应该可以进行扩展,但是不可以修改
特性:
1:对扩展是开放的
2:对修改是封闭的,开放即可以操作,关闭即不可以操作
3:实例接口继承
###########老鹰类################
class Eagle : Bird, IFlyable
{
public void fly()
{
Console.WriteLine("我是老鹰我可以飞");
}
public override void eat()
{
Console.WriteLine("我是老鹰我吃小鸡");
}
}
############鸵鸟类###############
class Ostrich:Bird
{
public override void eat() {
Console.WriteLine("我是鸵鸟我吃青草");
}
}
#############麻雀类###############
class Sparrow : Bird, IFlyable
{
public void fly()
{
Console.WriteLine("我是麻雀我可以飞");
}
public override void eat()
{
Console.WriteLine("我是麻雀我吃粮食");
}
}
############鸟类##################
abstract class Bird
{
public abstract void eat();
}
##########主类#####################
class Program
{
static void Main(string[] args)
{
Bird[] obj = {new Eagle(),new Sparrow(),new Ostrich()};
foreach (Bird item in obj){item.eat();}
IFlyable[] obj2 = {new Eagle(),new Sparrow()};
foreach (IFlyable item in obj2) { item.fly(); }
Console.ReadKey();
}
}
interface IFlyable
{ //定义接口函数 //注意函数不能有结构体;不能有修饰符
void fly();
}