C#之abstract(抽象类)

定义

abstract关键字,表明某个类只能是其他类的基类。
可以在父类中定义一个函数,但是不去实现。所有继承自该类的子类都必须实现该类中的所有抽象函数

功能:abstract关键字可以如下功能一起使用:类、属性、方法、索引器及事件等。与接口比较,它是单继承的,接口是多实现的。

注意:不可以用抽象类来进行实例化,但可以用抽象类来声明。但凡某一个类中有一个抽象方法,那么该类也就必须定义为抽象类。

示例
在此例中,类 Square 必须提供 Area 的实现,因为它派生自 ShapesClass
    
    abstract class ShapesClass
    {
        abstract public int Area();
    }
    class Square : ShapesClass
    {
        int side = 0;

        public Square(int n)
        {
            side = n;
        }
        // Area method is required to avoid
        // a compile-time error.
        public override int Area()
        {
            return side * side;
        }

        static void Main() 
        {
            Square sq = new Square(12);
            Console.WriteLine("Area of the square = {0}", sq.Area());
        }

        interface I
        {
            void M();
        }
        abstract class C : I
        {
            public abstract void M();
        }
    }
    // Output: Area of the square = 144
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,786评论 18 399
  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,800评论 0 14
  • 1. 析构函数和虚析构函数 如果基类的析构函数是虚的,那么它的派生类的析构函数都是虚的 这将导致:当派生类析构的时...
    杰伦哎呦哎呦阅读 2,519评论 0 2
  • 今日任务: 1,能够独立使用抽象类 2,能够独立使用多态 3,能够独立使用接口 4,能够理解适配器设计模式 1. ...
    Villain丶Cc阅读 1,422评论 0 17
  • 看着幻灯片上一点点的倒计时。心里真的有一种无力感。经历过一次失败,经历过一次落差从复习的第一天起就开始了倒计时。我...
    漠北雁阅读 188评论 0 1