C#一些基础语法理解

只是一些日常开发理解备忘,肯定有漏洞!别当真!!!

abstract

抽象类,定义方式为

1
2
3
abstract class MyAbstractClass
{
}

主要由以下几个特点:

  1. 不能直接被实例化
  2. 可以包含或不包含普通方法
  3. 可以包含或不包含抽象方法,抽象方法不能有方法体,即只能定义不能实现,使用abstract关键字,类似:
    1
    public abstract void MyMethod();
  4. 要使用抽象类,需要有另一个普通类来继承这个抽象类,这个普通类要override抽象类里的抽象方法,然后使用方实例化这个普通类即可

说点人话:我是大爷(抽象类),大爷会开车(抽象方法)、会打人(普通方法),但是驾照被吊销了;你跟了我(继承),你就得会开车,开车的事你来做(override),但是打人我能干,别人叫你打人的时候我来干

正经点,说个使用场景:

有个类,有一些方法是需要继承它的类自己单独实现,但是又有一些方法是通用的,这个类就可以定义为抽象类,需要子类去实现的方法定义为抽象方法,通用的方法则定义为普通方法

virtual

这个关键字是给方法用的,使用方式为

1
2
3
4
public virtual string Hello()
{
return "Hello From Temp";
}

定义virtual方法是标识这个方法可以被子类override,在调用的时候,如果子类override了这个方法,则会调用子类的方法,如果子类没有override这个方法,则会调用父类的virtual方法

说点人话:你继承你爹我(继承),你会的你干(override),你不会的你爹来干(没有override)!!