码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类与接口

时间:2015-11-15 00:44:56      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:

namespace ConsoleApplication2
{

    abstract class Fruit//抽象类abstract关键字
    {
        public abstract String Message
        {
            get;
            set;

        }//抽象属性
        public abstract void GrowInArea();//抽象方法不能有代码实现,在函数名直接跟一个分号。
        public void Say()
        {
            Console.WriteLine("我是水果,你是什么?");
        }

    }
    class Apple : Fruit
    {
      
        public string _msg;
        public override string Message
{
      get 
    { 
        return _msg; 
    }
      set 
    { 
    _msg=value; 
    }

}
        public override void GrowInArea()
        {
            Console.WriteLine(Message);
            Console.WriteLine("我是一个苹果,南方北方都可以种植我");

        }


       
    }
    class Pineapple : Fruit
    {
         public string _message;
         public override string Message
         {
             get
             {
                 return _message;
             }
             set
             {
                 _message = value;
             }
         }
        public override void GrowInArea()
        {
            Console.WriteLine("我是一个菠萝,只能在南方看到我");
        }

    }
    //定义两个接口 关键字interface
    //接口可以看成一种“纯”的抽象类,它的所有方法都是抽象方法。
    public interface ISwim//不需要class
    { 
        void Swim();//方法
    }
    public interface IFood
    {
        void Cook();
    }
    //定义一个抽象类
    public abstract class Bird 
    {
        public abstract void Fly();//抽象方法
        public void say()//不一定都是抽象的
        {
            Console.WriteLine("这是一只家鸭");
        }
    }
    //继承一个抽象类,实现两个接口
    public class Duck : Bird, ISwim, IFood
    {  //实现ISwim接口
        public  void Swim()
        {
            Console.WriteLine("鸭子会游泳");
        }
        //实现IFood接口
        public  void Cook()
        {
            Console.WriteLine("北京烤鸭");
        }
        //实现抽象类Bird中的抽象方法
        public override void Fly()
        {
            Console.WriteLine("只有野鸭才会飞");
        }

    }
}

  

class Program
    {
        static void Main(string[] args)
        {
            Fruit f;
            f=new Apple();
            f.Message = "Hello";
            f.GrowInArea();


            f = new Pineapple();
            f.GrowInArea();
            

            Duck d = new Duck();
            d.Swim();//调用父类子类接口的任意公有方法
            d.Cook();
            d.say();
            d.Fly();
            Console.ReadLine();

        }
    }

  

抽象类与接口

标签:

原文地址:http://www.cnblogs.com/hanke123/p/4965938.html

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