美文网首页
009_面向对象编程_继承。

009_面向对象编程_继承。

作者: 立秋i | 来源:发表于2018-05-21 15:51 被阅读0次

namespace _009_面向对象编程_继承 {

    abstract class Bird//一个抽象类 就是一个不完整的模板

    {

        private float speed;

        public void Eat()

        {

        }

        public abstract void Fly();

    }

}

———————————————————————————————————————————————————————————————

namespace _009_面向对象编程_继承 {

    class Boss : Enemy{

        //public override void Move()//重写 : 原来的方法不存在了

        //{

        //    Console.WriteLine("这里是Boss的移动方法");

        //}

        public new void Move()//当子类里面有一个签名和父类相同的方法的时候,就会把父类中的方法隐藏

        {//隐藏: 只是把父类中的方法隐藏了,看不到了,实际这个方法还存在

            Console.WriteLine("这里是Boss的移动方法");

        }

        public void Attack()

        {

            //AI();

            //Move();

            ////hp = 100;

            //HP = 100;//父类里面公有是数据和函数成员才可以在子类里面访问

            Move();

            Console.WriteLine("Boss正在进行攻击");

        }

    }

}

———————————————————————————————————————————————————————————————

namespace _009_面向对象编程_继承 {

    class Crow:Bird {//我们继承了一个抽象类的时候,必须去实现抽象方法

        public override void Fly()

        {

            Console.WriteLine("乌鸦在飞行");

        }

    }

}

———————————————————————————————————————————————————————————————

namespace _009_面向对象编程_继承 {

    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()

        {

            //Move();

            Console.WriteLine("这里是Enemy1的公有AI方法");

        }

        //public virtual void Move()

        //{

        //    Console.WriteLine("这里是Enemy1的公有Move方法");

        //}

        public void Move()

        {

            Console.WriteLine("这里是Enemy1的公有Move方法");

        }

        public void A()

        {

            Console.WriteLine("Enemy A");

        }

    }

}

———————————————————————————————————————————————————————————————

namespace _009_面向对象编程_继承 {

    class Program {

        static void Main(string[] args) {

            //Boss boss = new Boss();

            ////boss.AI();//继承:父类里面所有的数据成员和函数成员都会继承到子类里面

            //boss.Attack();

            //Enemy enemy;

            //enemy = new Boss();//父类声明的对象,可以使用子类去构造  子类声明的对象不可以使用父类构造

            ////enemy虽然使用父类进行了声明,但是使用了子类构造,所以本质上是一个子类类型的,我们可以强制类型转换转换成子类类型

            //Boss boss = (Boss)enemy;

            //boss.Attack();

            //Enemy enemy = new Enemy();

            //Boss boss =(Boss) enemy;//一个对象是什么类型的  主要看它是通过什么构造的  这里enemy使用了父类的构造函数,所以只有父类中的字段和方法, 不能被强制转换成子类

            //Boss boss = new Boss();

            ////boss.Attack();

            //boss.AI();

            //Enemy enemy = new Enemy();

            //enemy.AI();

            //Enemy boss = new Boss();

            //boss.Move();//隐藏方法: 如果使用子类声明的对象,调用隐藏方法会调用子类的,如果使用父类声明对象,那么就会调用父类中的隐藏方法

            //Crow crow = new Crow();

            //crow.Fly();

            //Bird bird = new Crow();//我们可以通过抽象类去声明对象 但是不可以去构造

            //bird.Fly();

            Console.ReadKey();

        }

    }

}

———————————————————————————————————————————————————————————————

namespace _009_面向对象编程_继承 {

    class Type1Enemy:Enemy {

    }

}

———————————————————————————————————————————————————————————————

namespace _009_面向对象编程_继承 {

    class Type2Enemy:Enemy {

    }

}

相关文章

  • 009_面向对象编程_继承。

    namespace _009_面向对象编程_继承 { abstract class Bird//一个抽象类 ...

  • 面对对象高级编程

    面向对象高级编程: 面向对象编程:封装、继承和多态 面向对象高级编程:多重继承、定制类和元类

  • JavaScript之面向对象编程

    五、面向对象编程 目录:面向对象原型继承、面向对象class继承(ES6引入的) 1.面向对象原型继承 类:模板 ...

  • Python面向对象继承

    面向对象继承 面向对象编程 (OOP),英语全称:Object Oriented Programming,面向对象...

  • 面向对象

    面向对象有3大特性:封装、继承、多态1、介绍面向对象编程 面向对象编程(Object Oriented Progr...

  • python 高级 面向对象编程(OOP)

    面向对象有3大特性:封装、继承、多态 1、介绍面向对象编程 面向对象编程(Object Oriented Pro...

  • 2021-12-05面向对象与面向过程总结

    面向对象 面向对象编程(OOP) 面向对象编程:是一种编程范式,它以类和对象作为组织代码的单元,以封装、抽象、继承...

  • c#面向对象编程

    面向对象的编程,其实就是用现实中的思维方式来编程。 面向对象编程的3个方式:封装,继承,多态。 而提到面向对象编程...

  • JAVA语言第二课

    JAVA面向对象——四大特征 继承篇——extendsJava 继承继承的概念继承是java面向对象编程技术的...

  • 设计模式之美-BJ002面向对象、设计原则、设计模式、编程规范、

    1.面向对象 面向对象的四大特性:封装、抽象、继承、多态面向对象编程与面向过程编程的区别和联系面向对象分析、面向对...

网友评论

      本文标题:009_面向对象编程_继承。

      本文链接:https://www.haomeiwen.com/subject/ttafjftx.html