夜光带你走进C# 游戏开发等(八十四)擅长的领域

  • 时间:
  • 来源:互联网
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41987706/article/details/103194048

夜光序言:

 

 

如果人生永远是一条直路,那一定很单调;

如果人生永远停留在某个阶段,那一定很乏味。所以,人生需要生活这块调色板。

 

 

 

 

 

 

 

 

 

 

正文:

 

 

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

namespace 分析
{
    //夜光:把下面这个类变成接口
    interface IPlayerOp  //规定每一个职业的玩家需要实现的功能,一般我们会加上一个I,表示这个是接口

    {
        //夜光:虚方法其实就是定义一个规范,告诉派生类你可以重新去实现这个规范
        
            //注意:接口里面定义的方法都必须是 public / abstract 类型的
        void TuShou();  //定义一个徒手攻击的方法


        void Jin();  //定义一个近距离攻击的方法


        void Yuan();   //定义一个远距离攻击的方法


        void Buff();   //定义一个加buff的方法


    }

    /// <summary>
    /// 下面这个抽象类PlayerOp继承IPlayerOp接口
    /// </summary>
    abstract class PlayerOp : IPlayerOp  //规定每一个职业的玩家需要实现的功能

    {
        public virtual void Buff()
        {
            throw new NotImplementedException();
        }

        //夜光:虚方法其实就是定义一个规范,告诉派生类你可以重新去实现这个规范

        /* //注意:接口里面定义的方法都必须是 public / abstract 类型的
         public abstract void TuShou();  //定义一个徒手攻击的方法


         public abstract void Jin();  //定义一个近距离攻击的方法


         public abstract void Yuan();   //定义一个远距离攻击的方法


         public abstract void Buff();   //定义一个加buff的方法*/

        //抽象类里面可以包含非抽象的
        public void f()
        {
            Console.WriteLine("f()方法");
        }

        public virtual void Jin()
        {
            throw new NotImplementedException();
        }
        public virtual void TuShou()
        {
            throw new NotImplementedException();
        }
        public virtual void Yuan()
        {
            throw new NotImplementedException();
        }
    }


    /// <summary>
    /// 夜光:先定义一个英雄
    /// </summary>
    class Hero1 : PlayerOp  //Hero1 继承抽象类 PlayerOp
    {
        public override void TuShou()  //不可以加override
        {
            Console.WriteLine("琦玉老师的灵魂,一拳KO~~");
        }

        public override void Jin()
        {
            Console.WriteLine("桐人的灵魂,十六连击的“星爆气流斩”(Star Burst Stream)");
        }

        public override void Yuan()
        {
            Console.WriteLine("卫宫士郎的灵魂,无限剑制(Unlimited Blade Works)");
        }

        public override void Buff()
        {
            Console.WriteLine("男主的祝福,越挫越勇");
        }

    }


    /// <summary>
    /// 第二个英雄
    /// </summary>
    class Hero2 : PlayerOp
    {
        public override void TuShou()
        {
            Console.WriteLine("琦玉老师的灵魂,认真系列:一拳KO~~");
        }

        public override void Jin()
        {
            Console.WriteLine("桐人的灵魂,超越十六连击的“日蚀”");
        }

        public override void Yuan()
        {
            Console.WriteLine("卫宫士郎的灵魂,无限剑制精华版(Unlimited Blade Works)");
        }

        public override void Buff()
        {
            Console.WriteLine("男主的祝福,越挫越勇");
        }
    }
 



    class Program
    {
        static void Main(string[] args)
        {
            //我们先new 两个对象出来
            Hero1 hero1 = new Hero1();
            Hero2 hero2 = new Hero2();

            IPlayerOp lpo = hero1;
            lpo.Jin();

            Console.ReadLine();
        }
    }
}

 

 

 

 

 

 

 

 

 

 

本文链接http://element-ui.cn/news/show-77.aspx