C#中的抽象类和抽象方法

        一、抽象类和抽象方法的概念

        在基类中的虚方法有时候不可能被调用到,而只是表达一种抽象的概念,用以为它的派生类提供一个公共的界面。 C#中引入了抽象类(abstract class)的概念,可以将它定义成抽象方法。将该方法所在的类定义成抽象类

         抽象方法:只包含方法定义,但没有具体实现的方法,需要其子类或者子类的子类来具体实现。

         抽象类:抽象类是能够包含抽象成员的类。抽象类只能作为基类使用,不能被实例化。

        二、抽象类和抽象方法的使用原则

        1  抽象类中可以存在非抽象方法,抽象方法必须包含在抽象类中。

        2  实现抽象方法用override关键字。如果子类没有实现抽象基类中所有的抽象方法,则子类也必须定义成一个抽象类。

        3  抽象方法被实现后,不能更改修饰符。

        4  抽象类可以被抽象类所继承,结果仍是抽象类。

        5  所有抽象的方法,在派生类中必须被实现。

         下面就让我们通过一个例子来认识一下抽象类吧:

       

   abstract class shapleclass    //抽象类的声明
    {
      abstract public void area();  //抽象方法,只是声明没有实际的实现,所以只是以分号结束,并且在签名后没有大括号
        public void fun()       //成员函数
        {
            Console.WriteLine("这是一个非抽象方法!");
        }

    }
    
    class shap:shapleclass

    {

        public override void area()   //所有派生于抽象类的方法,必须实现抽象类中的抽象方法
        {
            Console.WriteLine("这是一个抽象方法");
        }
    }

 

 class Program
    {
        static void Main(string[] args)
        {
            shap  circle = new shap();
            circle.fun();
            circle.area();
        }
    }


        运行结果如下:

       

        

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值