有趣的接口和抽象类

接口和抽象类的定义和区别,可以查看博主anytao的博客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();
        }

结果:

兔子灰色

兔子奔跑!

兔子有一个脑袋

兔子有2只眼睛 

 

注意:抽象类的虚方法重写不是必须的,可以选择重写。重写之后会替换掉原来的方法。

 

转载于:https://www.cnblogs.com/Aspvn/p/9698866.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值