C#关键字 - Abstract

abstract 所修饰的内容缺少实现或者未完成实现。它可以用来修饰:类,方法,属性,索引器或事件。

 

用abstract修饰的类 叫做抽象类

标记为抽象或者包含在抽象类中的成员必须通过从抽象类派生的类来实现。

 

抽象类的特性:

  1. 抽象类不能被实例化,对抽象类使用new运算符是错误的。
  2. 抽象类可以包含抽象方法和抽象访问器
  3. 不能用sealed来修饰抽象类,因为这两个修饰符的含义是相反的,采用sealed修饰的类是密封的,不能被继承,而抽象类只能用来做基类
  4. 从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实现
  5. 从抽象类继承的类,如果没有提供对父类方法的实现,那子类也是抽象类
  6. 抽象类可以继承实体类:a. 实体类可继承 b.实体类中中必须有子类可以访问的构造函数
  7. 抽象类必须为接口成员提供实现 ,实现接口的抽象类可以讲接口方法映射到抽象方法上。

抽象方法

  1. 抽象方法是隐式的虚方法
  2. 只允许在抽象类中声明抽象方法
  3. 抽象方法不提供实际的实现,所以没有方法体,方法的声明以分号结束,没有大括号:public abstract void MyMethod();
  4. override来重写抽象方法,override是非抽象类的成员。
  5. 抽象方法中不能用static或者virtual修饰符

 抽象属性

  1. 在静态属性上使用abstract修饰符是错误的
  2. 在派生类中,使用override可以重写抽象的继承属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值