接口与抽象类

来源:互联网 发布:黑客帝国重访矩阵 编辑:程序博客网 时间:2024/05/17 04:09

抽象类

当抽象类作为父类时,他的子类对其中的抽象类方法有不同的方法体

简单举例为:

classHorse:Mammal,ILangBound

{

  public int NumerOfLegs();

      {

            return 4;

      }

}         

 

interface ILandBound

{

int  NumberOfLegs();

}

 

 

 

接口例子

 

main函数

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

namespace 作业3接口
{
    class Program
    {
        static void Main(string[] args)
        {
            Horse horse = new Horse("斑马维尼");//初始化一个horse的函数
            Console.WriteLine(horse.getName());//输出horse的名字
            horse.ChrewGrass();//调用吃草这个函数

            Sheep sheep = new Sheep("绵羊妮妮");初始化一个sheep的函数
            Console.WriteLine(sheep.getName());//输出sheep的名字
            sheep.ChrewGrass();//吃草

            Cow cow = new Cow("小牛麦克");初始化一个cow的函数
            Console.WriteLine(cow.getName());
            cow.ChrewGrass();//吃草

            ILandBound landbound = horse;
            Console.WriteLine(landbound.NumberOfLegs());

            Console.ReadKey();
        }
    }
}

 

sheep类

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

namespace 作业3接口
{
    class Sheep:GrazingMammal,ILandBound
    {
        public Sheep(string name):base(name)
        {
       
        }
        public int NumberOfLegs()
        {
            throw new NotImplementedException();
        }
        public override void ChrewGrass()
        {
            Console.WriteLine("Chrewing Grass");
        }
    }
}


horse类

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

namespace 作业3接口
{
    class Horse:GrazingMammal,ILandBound
    {
        public Horse(string name):base(name)
        {
       
        }
        int ILandBound.NumberOfLegs()
        {
            return 4;
        }
        public override void ChrewGrass()
        {
            Console.WriteLine("Chrewing Grass");
        }
    }
}


banba类

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

namespace 作业3接口
{
    class BanBa:Horse
    {
        public BanBa(string name)
            : base(name)
        {
       
        }
    }
}


cow类

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

namespace 作业3接口
{
    class Cow:GrazingMammal
    {
        public Cow(string name)
            : base(name)
        {
       
        }
        public override void ChrewGrass()
        {

            Console.WriteLine("反刍");
        }
    }
}


mammal类

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

namespace 作业3接口
{
    class Mammal
    {
        private string name;
        public string getName()
        {
            return name;
        }
        public Mammal(string initialName)
        {
            name = initialName;
        }
        public void Breath()
        {
            Console.WriteLine(name + "这个哺乳动物正在呼吸");
        }
        public void SunkleYoung()
        {
            Console.WriteLine(name + "这个哺乳动物正在哺乳");
        }
    }
}

 

ILandBound类

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

namespace 作业3接口
{
    interface ILandBound
    {
        int NumberOfLegs();
    }
}

 

IJourney类

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

namespace 作业3接口
{
    interface IJourney
    {
        int NumberOfLegs();
    }
}

 

IGrazable类

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

namespace 作业3接口
{
    interface IGrazable
    {
        void ChrewGrass();
    }
}

 

 

GrazingMammal类

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

namespace 作业3接口
{
   abstract class GrazingMammal:Mammal,IGrazable
    {
       public GrazingMammal(string name):base(name)
       {

       }
       public abstract void ChrewGrass();
    }
}

 

 

 

 

 

 

 

 

 

 

 

 


 

 

原创粉丝点击