只是一些日常开发理解备忘,肯定有漏洞!别当真!!!
abstract
抽象类,定义方式为
1 | abstract class MyAbstractClass |
主要由以下几个特点:
- 不能直接被实例化
- 可以包含或不包含普通方法
- 可以包含或不包含抽象方法,抽象方法不能有方法体,即只能定义不能实现,使用
abstract
关键字,类似:1
public abstract void MyMethod();
- 要使用抽象类,需要有另一个普通类来继承这个抽象类,这个普通类要
override
抽象类里的抽象方法,然后使用方实例化这个普通类即可
说点人话:我是大爷(抽象类
),大爷会开车(抽象方法
)、会打人(普通方法
),但是驾照被吊销了;你跟了我(继承
),你就得会开车,开车的事你来做(override
),但是打人我能干,别人叫你打人的时候我来干
正经点,说个使用场景:
有个类,有一些方法是需要继承它的类自己单独实现,但是又有一些方法是通用的,这个类就可以定义为抽象类,需要子类去实现的方法定义为抽象方法,通用的方法则定义为普通方法
virtual
这个关键字是给方法用的,使用方式为
1 | public virtual string Hello() |
定义virtual
方法是标识这个方法可以被子类override
,在调用的时候,如果子类override
了这个方法,则会调用子类的方法,如果子类没有override
这个方法,则会调用父类的virtual
方法
说点人话:你继承你爹我(继承
),你会的你干(override
),你不会的你爹来干(没有override
)!!