码迷,mamicode.com
首页 > Windows程序 > 详细

c# 第37节 接口的实现与继承

时间:2018-03-29 17:23:19      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:div   open   派生   for   ##   bsp   gpo   col   click   

本节内容:

1:接口继承注意

2:开发封闭原则:

3:实例解释接口的作用

 

 

1:接口继承注意

接口的继承:
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();
    }
}
View Code

接口IFlyable:

 interface IFlyable
    {   //定义接口函数 //注意函数不能有结构体;不能有修饰符
        void fly();
    }

输出:

技术分享图片

 

c# 第37节 接口的实现与继承

标签:div   open   派生   for   ##   bsp   gpo   col   click   

原文地址:https://www.cnblogs.com/hero799/p/8670893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!