有趣的接口和抽象类

接口和抽象类,可以查看https://www.cnblogs.com/anytao/archive/2007/04/12/must_net_02.html

接口:一般是用来定义行为方式

public interface IAction
{
        //定义行为方式移动
        void Move();
}

抽象类:一般是用来定义共同特征

public abstract class Similarity
    {
        //定义字段
        protected string _name;
        //声明抽象属性
        public abstract string Name
        {
            get;
        }
        //声明一个抽象方法
        public abstract void Color();
        //实现一个虚方法
        public virtual void Head()
        {
            Console.WriteLine(_name+"有一个脑袋");
        }
        //实现一个普通方法
        public void Eyes()
        {
            Console.WriteLine(_name+"有2只眼睛");
        }
    }

实现抽象类和接口

public class Rabbit : Similarity,IAction
    {
        public override string Name
        {
            get
            {
                return _name;
            }
        }
        public Rabbit(string name)
        {
            _name = name;
        }
        public void Move()
        {
            Console.WriteLine(_name+"奔跑!");
        }
        public override void Color()
        {
            Console.WriteLine(_name+"灰色");
        }
    }

客户端实现

static void Main(string[] args)
        {
            Rabbit rabbit = new Rabbit("兔子");
            rabbit.Color();
            rabbit.Move();
            rabbit.Head();
            rabbit.Eyes();
        }

猜你喜欢

转载自www.cnblogs.com/Aspvn/p/9698866.html