C#~抽象类抽象方法

版权声明:盗版必究 https://blog.csdn.net/jinxiul5/article/details/81941392

抽象类

什么是抽象类:
抽象类的存在是为了表示某些抽象的概念,不会与具体的事物相联系,主要用于表示子类所拥有的共同特性,只能作为基类来使用。

特性:

<1>抽象类必须添加关键字abstract关键字。
<2>抽象类中可以包含普通函数和抽象方法。
<3>抽象类不能直接实例化(直接创建对象),但是可以通过子类创建对象进行访问。
<4>抽象类不能用sealed进行修饰,因为抽象类需要继承,一般只作为基类使用。
<5>抽象类不能实例化,但是可以拥有构造方法。
<6>子类在实现抽象类时必须实现抽象类中定义的抽象方法。


    //定义一个玩家抽象类
    public abstract  class Player
    {

    }

抽象方法

特点:
<1>抽象方法没有方法体(没有具体的实现方法),只有方法定义,但是其子类必须行实现抽象方法。
<2>抽象方法必须写在抽象类中。
<3>抽象方法必须添加关键字abstract关键字。
<4>子类实现抽象方法必须添加override关键字
<5>抽象方法不能使用private修饰符
例 玩家攻击:

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

namespace ConsoleApp1
{

    //定义一个玩家抽象类
    public abstract  class Player
    {
        //所有玩家都具有攻击能力
        public abstract void  Attack();
    }
    public class Rabbit : Player
    {
        //兔子的攻击方式
        public override void Attack()
        {
            Console.WriteLine ("跳你一脸" );
        }
    }
    public class Pig : Player
    {
        //猪的攻击方式
        public override void Attack()
        {
            Console.WriteLine ("踢你一身" );
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            //抽象类不能直接创建实例[Player p = new Player ( );这种方式不被允许],但是可以通过子类进行创建
            //这种形式被称为多态
            Player p1 = new Rabbit ( );
            Player p2 = new Pig ( );
            //调用攻击方法
            p1.Attack ( );
            p2.Attack ( );
            Console.ReadKey ( );
        }
    }
}

猜你喜欢

转载自blog.csdn.net/jinxiul5/article/details/81941392