重新理解了下关键字abstract,做出以下总结:
1.标记为abstract的类不能实例化,但是依然可以有构造函数,也可以重载构造函数,在子类中调用
2.abstract类中可以有abstract标记的方法和属性,也可以没有,被标记的方法和属性不能有实现
3.子类如果不被标记为abstract,就必须使用override实现abstract父类中标记为sabtract的方法和属性
注意点:
1.被标记为abstract的方法,不能再用static或virtual修饰符修饰
2.在静态属性上不能使用abstract修饰符修饰
3.abstract标记类继承接口后,必须实现接口方法,或者标记为abstract后,由子类实现
共同点:
1.virtual与abstract 都可以被子类重写,使用override关键字
2.都不能标记为private
不同点:
1.abstract 方法只能在abstract类中声明,不能在普通类中声明,virtual方法则没有限制
2.abstract方法不能有方法体,virtual必须有方法体,哪怕一个{}
3.子类必须实现abstract方法,virtual则不必要