抽象类与密封方法
来源:互联网 发布:淘宝物流评分怎么提升 编辑:程序博客网 时间:2024/04/29 19:11
抽象类
在上一篇文章里,我们知道基类里的函数能够被重写,那么要是在一个程序里,他的函数在每个子类里全部都要被重写,该基类的函数可不可以不去实现,只定义一个函数呢?
我们可以定义一个抽象函数,抽象函数只有函数定义没有函数体,可以说抽象函数本身也是虚拟的virtual(只有函数,没有函数体实现)
当一个类里有抽象函数的时候,这个类也必须是抽象类,抽象类不能实例化,但是抽象类可以同时有普通函数和抽象函数。
在前面我们说过类相当于一个模板,所以抽象类就是一个不完整的模板,我们不能够使用不完整的模板去构造对象。定义一个抽象类需要abstract关键字。
abstract class Building{ public abstract decimal CalculateHeatingCost();}
有几点需要注意的是
- 当我们继承了一个抽象类的时候,我们必须去实现抽象类里的抽象方法。
- 因为抽象的方法没有函数体,所有一般情况下每个子类的方法都是不同的。
- 在声明和构造对象的时候,抽象类可以声明对象,但是不能用于构造对象。
一个抽象类的继承实例
abstract class Bird { private float speed; public void Eat() { } public abstract void Fly(); }class Crow:Bird { public override void Fly() { Console.WriteLine("乌鸦在飞行"); } }
密封方法
在C#中,允许把类和方法声明为sealed。对于类来说,这表示不能够继承该类;对于方法来说,表示不能重写该方法。
语法规则
sealed FinalClass{ //etc.}
密封类和密封方法的作用:防止重写某些类导致代码混乱;商业原因。
//sealed class BaseClass class BaseClass { public virtual void Move() { } }class DerivedClass:BaseClass //密封类无法被继承 { public sealed override void Move() //只能密封重写的方法 { } }
这段代码中可以看出,sealed关键字可以加在类名前面,但是在方法上只能加在重写方法前面,而且密封类是无法被继承的 。密封类在我们写程序的过程中几乎用不到。
阅读全文
0 0
- 抽象类与密封方法
- 抽象与密封
- 抽象与密封示例
- 黑马程序员_学习日记24_面向对象技术高级应用(接口、抽象类与抽象方法、密封类与密封方法)
- C#入门10.6——密封类与密封方法
- C#:抽象类和抽象函数, 密封类和密封方法
- C#密封类、密封方法
- 密封类和密封方法
- c# 中的抽象类、接口、密封类、虚方法介绍
- C#之抽象类、虚方法、重写、接口、密封类
- 抽象类和密封类
- 抽象类和密封类
- C# 抽象类、密封类
- C#==>密封类,密封方法
- C# 密封类和密封方法
- 黑马程序员--密封类和密封方法
- C#_密封类和密封方法
- C# 密封类和密封方法
- html之js的组成
- 1-KYLIN介绍
- 一步一步使用webpack创建react项目
- IT项目经理必备生存指南
- JSON 数据格式
- 抽象类与密封方法
- Ubuntu16.04 安装L2TP Client
- Python: Number of rows affected by cursor.execute("SELECT …)
- 300.16拷贝一张图片到另一个目录
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和
- easyui datagrid 样式自定义
- IDEA使用 @Autowired和@Resource时报错
- 三范式理解
- python安全编码指南