抽象类
如果父类的函数在各个子类中都不要设置不同的函数体,在父类中定义就没必要了,就可以设置只有函数名,没有函数体,声明成抽象函数
1.抽象类的设置(非抽象类里面不能含有抽象函数)
abstract class Enemy
2.抽象函数 的设置
public abstract void Attack();
3.抽象类是不能构造对象的,例如
Enemy ey=new Enemy();
只能声明Enemy ey;但new Enemy() 使用抽象类的模板是错误的
处理办法:在当前行的左边点击实现抽象类
将函数体修改
抽象函数和虚方法的区别:
抽象函数是让父类只需要声明函数,而子类负责设置
在抽象类里abstract class Enemy{
public abstract void Attack()
{。。。} }
在子类里面 class Boss : Enemy
{
public override void Attack()}
虚方法是在子类里重写函数
public virtual void Move()
在boss类中
(输入override会有提示)
public override void Move()
{
base.Move();//和父类相同
}
密封类 sealed
作用:1.防止重写某些类,导致代码混乱
2.商业原因
类不能继承,方法不能重写
在父类用virtual虚方法
普通类+virtual方法
在子类重写方法
继承类+override方法+sealed(该方法不可以再次被重写)