3-1 C#抽象类和游戏表盘案例

一.什么是抽象类?

就是抽象处理啊的东西,表示一个大类,无法具体划出具体对象,例如动物的分支不可能再是动物

表达式:abstract class dongwu{}

这样在主函数中就无法用new实例化该类

 二.游戏表盘案例

// See https://aka.ms/new-console-template for more information
using System.Diagnostics;
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

//表盘案例

namespace ConsoleApp1
{
    abstract class Dashborad//表盘无法实例化
    {
        public abstract void Render();//生成虚函数类型
    }
    class 雇佣兵的HP: Dashborad
    {
        public int HP = 200;
        public override void Render() { Console.WriteLine("雇佣兵的生命值为{0}",this.HP); } //复写
    
    }
    class 主角的HP: Dashborad
    {
        public int HP = 100;
        public override void Render() { Console.WriteLine("主角生命值为{0}",this.HP); }//复写

    }
    class 主角 
    {
        public 主角的HP HP=new 主角的HP();//包含自己的HP

        public 雇佣兵 Helper = new 雇佣兵();//包含一个雇佣兵
    }
    class 雇佣兵
    {
        public 雇佣兵的HP HP = new 雇佣兵的HP();//包含自己的HP

    }
    class Program
    {
        static void 重绘(List<Dashborad> dashborad) //创建一个群体的重绘
        {
            foreach(var db in dashborad)
            db.Render();//重新输出所有群体的血条
        }

        static void Cls()
        {
            for (int i = 1; i <= 42; i++)
            {
                Console.WriteLine(" ");
            }
        }
        static void Main(string[] args)
        {
         主角 me =new 主角();

            List<Dashborad>dbs=new List<Dashborad>();//创建集合
            dbs.Add(me.HP);//集合里面添加我的血条
            dbs.Add(me.Helper.HP);//集合里面添加雇佣兵的血条
            重绘(dbs);
            Thread.Sleep(500);
            Cls();

            
            me.HP.HP -= 50;
            me.Helper.HP.HP -= 99;

            Thread.Sleep(500);
            重绘(dbs);

        }


    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉小萌新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值