Unity学习(C#)——继承

C#不支持多重实现继承
基类敌人类(hp speed方法ai move)
派生 boss类

  class Program
    {
        static void Main(string[] args)
        {       
        Boss boss = new Boss();
        boss.Attack();
        Console.ReadKey();
        }
    }
 class Boss:Enemy//在类后面加 :父类 就是继承
    {
        public void Attack()
        {
            AI();
            Move();
            HP = 100;
           // hp = 200;//父类里面共有数据和函数可以访问,私有仍然不能访问
            Console.WriteLine("正在攻击");
        }

    }
    class Enemy
    {
        private float hp;
        private float speed;
        public float HP
        {
            get{return hp;}
            set { hp = value; }
        }
        public float Speed
        {
            get { return speed; }
            set { speed = value; }
        }
        public void AI()
        {
            Console.WriteLine("这是Enemy共有的AI方法");
        }
        public void Move()
        {
            Console.WriteLine("这是Enemy1共有的Move方法");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {       
       // Boss boss = new Boss();
        //boss.Attack();
            Enemy enemy;
            enemy = new Boss();//父类声明的对象可以用子类去构造 子类声明的对象不能用父类构造
            Boss boss = (Boss)enemy;//虽然是父类声明的对象,但是是子类构造的,所以他本质上是子类型的,可以用强制类型转化成子类,
            //来调用子类中的函数
            boss.Attack();
            Console.ReadKey();
            //Enemy enemy1 = new Enemy();
            //Boss bose = (Boss)enemy1;//错误,父类不能被强制转化成子类;
        }
    }

你可能感兴趣的:(Unity学习(C#)——继承)