• 抽象类和抽象方法


    抽象类表示一种抽象的概念, 只是希望以它为基类的派生类有共同的函数成员和数据成
    员。抽象类使用abstract修饰符,对抽象类的使用有以下几点规定:
    � 抽象类只能作为其它类的基类,它不能直接被实例化。
    � 抽象类允许包含抽象成员,虽然这不是必须的。抽象成员用abstract修饰符修饰。
    � 抽象类不能同时又是密封的。
    � 抽象类的基类也可以是抽象类。 如果一个非抽象类的基类是抽象类, 则该类必须通过覆
    盖来实现所有继承而来的抽象方法, 包括其抽象基类中的抽象方法, 如果该抽象基类从
    其它抽象类派生,还应包括其它抽象类中的所有抽象方法。

    请看下面的示例:

     1 abstract class Figure//抽象类定义
     2 { protected double x=0,y=0;
     3 public Figure(double a,double b)
     4 { x=a;
     5 y=b;
     6 }
     7 public abstract void Area();//抽象方法,无实现代码
     8 }
     9 class Square:Figure///类Square定义
    10 { public Square(double a,double b):base(a,b)
    11 {}
    12 public override void Area()//不能使用new,必须用override
    13 { Console.WriteLine("矩形面积是:{0}",x*y);}
    14 }
    15 class Circle:Figure///类Square定义
    16 { public Circle(double a):base(a,a)
    17 {}
    18 public override void Area()
    19 { Console.WriteLine("园面积是:{0}",3.14*x*y);}
    20 }
    21 class Class1
    22 { static void Main(string[] args)
    23 { Square s=new Square(20,30);
    24 Circle c=new Circle(10);
    25 s.Area();
    26 c.Area();
    27 }
    28 }


    程序输出结果为:
    矩形面积是:600
    园面积是:314
    抽象类Figure提供了一个抽象方法Area(), 并没有实现它, 类Square和Circle从抽象类
    Figure中继承方法Area(),分别具体实现计算矩形和园的面积。
    在类的基本概念一节中, 定义一个描述个人情况的类Person, 它只是描述了一个人最一
    般的属性和行为,因此不希望生成它的对象,可以定义它为抽象类。
    注意: C++程序员在这里最容易犯错误。 C++中没有对抽象类进行直接声明的方法, 而认
    为只要在类中定义了纯虚函数, 这个类就是一个抽象类。 纯虚函数的概念比较晦涩, 直观上
    不容易为人们接受和掌握,因此C#抛弃了这一概念。

    勤劳一日,便得一夜安眠;勤劳一生,便得幸福长眠。
  • 相关阅读:
    对眼睛有利的屏幕颜色
    C++的动态联编与静态联编【转载】
    关于虚析构函数
    虚析构函数的使用(转载!)
    c/c++内存机制(转)
    delete this
    PhpStorm环境配置
    flutter之路由与导航
    flutter之Widget
    Flutter项目初步认识
  • 原文地址:https://www.cnblogs.com/zhaomengmeng/p/3922569.html
Copyright © 2020-2023  润新知