抽象类可以有构造函数吗
可以 构造函数 抽象类
2023-09-11 14:16:51 时间
我们知道,抽象类是不能被实例化的。但抽象类是否可以有构造函数?答案是可以有。抽象类的构造函数用来初始化抽象类的一些字段,而这一切都在抽象类的派生类实例化之前发生。不仅如此,抽线类的构造函数还有一种巧妙应用:就是在其内部实现子类必须执行的代码。
以下就是在抽象类的构造函数中来初始化字段。
class Program
{static void Main(string[] args){Employee employee = new Employee();
Console.WriteLine(employee.ID);Console.ReadKey();}}public abstract class Base{private Guid _id;
public Base()
{this._id = Guid.NewGuid();
}public Guid ID
{get { return this._id; }}}public class Employee : Base{}
总结:虽然抽象类不能被实例化,但可以有构造函数。由于抽象类的构造函数在实例化派生类之前发生,所以,可以在这个阶段初始化抽象类字段或执行其它与子类相关的代码。
相关文章
- 对前端特效感兴趣的同学可以留意下这些例子,有点意思
- 整理两个JVM博客集合,空闲时候可以看
- gitlab web登入密码忘记以后可以用如下方式修改密码
- asyncio: Task, create_task, ensure_future 都可以创建任务,该用哪个?
- 如何给UI上可以接收focus事件的element动态注册onfocus处理函数
- Atitit websocket 使用大概总结 使用场景 websocket 实时信息的Web应用却带来了很大的不便,如带有即时通信、实时数据、订阅推送等功能的应 用 实时数据可以用来更新缓存
- Atitit 物化视图与触发器性能测试方法 attilax总结 1.1. 触发器主要影响更新性能。。。1 1.2. 临时打开关闭触发器,如果db不支持可以更改条件使其不触发1 1.3. 打开定时
- 不擅长面试可以怎么准备面试?
- python可以干什么
- Batch Normalization标准化(精)==>一方面可以简化计算过程,一方面经过规范化处理后让数据尽可能保留原始表达能力
- 几乎所有的html + css 内容的编写, 都可以通过emmet来写
- 不同语言、不同平台可以通信吗?JSON做序列化会粘包吗?附粘包处理
- 软件测试人员可以发展哪些副业?
- NBminer 默认就支持stratum+ssl:// 加密挖矿协议的,不过他只可以用GPU挖矿
- 学机器学习有什么用?机器学习可以应用哪些领域?