接口的声明、实现和继承

时间:2021-07-11 10:10:00

题目描述  

老鹰、麻雀、鸵鸟都是鸟类,根据三者的共性,提取出鸟类作为父类;并且各自具有各自的特点,老鹰吃小鸡,麻雀吃粮食,鸵鸟吃青草。老鹰和麻雀都会飞,实现“飞”功能。(控制台应用程序)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 接口的实现和继承
{
    class Program
    {
        static void Main(string[] args)
        {
            IFlyable[] flys = {new Eagle(),new Sparrow()};
            foreach(IFlyable outFly in flys)
                outFly.Fly();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 接口的实现和继承
{
   abstract class Bird
    {
        public abstract void Eat();
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 接口的实现和继承
{
    class Eagle:Bird,IFlyable
    {
        //接口的实现需要在实现接口的类中进行实现
        public void Fly()
        {
            Console.WriteLine("我是老鹰,我会飞");
        }
        public override void Eat()
        {
            Console.WriteLine("我是老鹰,我专吃小鸡");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 接口的实现和继承
{
    class Sparrow:Bird,IFlyable
    {
        public void Fly()
        {
            Console.WriteLine("我是麻雀,我会飞");
        }
        public override void Eat()
        {
            Console.WriteLine("我是麻雀,我专吃粮食");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 接口的实现和继承
{
    class Ostrich:Bird
    {
        public override void Eat()
        {
            Console.WriteLine("我是鸵鸟,我专吃青草");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 接口的实现和继承
{
    interface IFlyable
    {
        void Fly();
    }
}

接口的声明、实现和继承

***接口的声明

1.接口不能包含字段

2.接口成员不允许添加访问修饰符,默认就是public,成员也不能加abstract访问修饰符

3.接口不能包含实现其成员的任何代码,而只能定义成员本身(如不允许写具有方法体的函数)

4.实现过程必须在实现接口的类中完成

5.接口的成员可以是方法、属性、事件和索引器,但不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员

***接口的实现和继承

1.类继承具有单根性,接口可多重继承

2.父接口也称为该接口的显示基接口

3.接口多重继承时,派生接口名与父接口用冒号隔开,多个父接口之间用逗号隔开