C#类/方法修饰符
我正在尝试用类/方法修饰符制作电子表格。可以找到电子表格本身,尽管我有一些问题: 1) 正如我所读到的,方法也可以是密封的,但是这样做的目的是什么呢?保护方法不被重写 2) 在C#类/方法修饰符,c#,class,methods,modifier,C#,Class,Methods,Modifier,我正在尝试用类/方法修饰符制作电子表格。可以找到电子表格本身,尽管我有一些问题: 1) 正如我所读到的,方法也可以是密封的,但是这样做的目的是什么呢?保护方法不被重写 2) 在abstract类中,字段是否也必须是abstract 3) virtual方法能否在定义的对象/类中具有主体 sealed继承链中的方法sealed方法还需要有override关键字 字段不能是抽象的。字段是类级别的变量。你不能忽略这一点。属性和方法可以是抽象的,但不需要 virtual和abstract方法之间的区别在
abstract
类中,字段是否也必须是abstract
3) virtual
方法能否在定义的对象/类中具有主体
sealed
继承链中的方法sealed
方法还需要有override关键字virtual
和abstract
方法之间的区别在于virtual方法有一个实现。您可以在派生类中重写该实现sealed
继承链中的方法sealed
方法还需要有override关键字virtual
和abstract
方法之间的区别在于virtual方法有一个实现。您可以在派生类中重写该实现1:是的,就是这样;阻止子类中的虚拟方法再次被重写 2:字段从不抽象;字段是实现;在抽象类中,没有任何东西必须是抽象的
3:是的,虚拟修饰语不同于抽象修饰语。两者都代表一个虚拟方法——区别完全在于基类中是否有实现:是的,正是这样;阻止子类中的虚拟方法再次被重写 2:字段从不抽象;字段是实现;在抽象类中,没有任何东西必须是抽象的
3:是的,虚拟修饰语不同于抽象修饰语。两者都代表一个虚拟方法-区别完全在于基类中是否有实现您可以全部尝试,看看会发生什么2)字段声明保留存储,而没有机会定义或重新定义交互。重写发生在交互上,比如方法和属性getter/setter。一开始,当一个属性看起来像是存储时,您是否可以覆盖该属性似乎不太清楚。如果是这样的话,请记住这只是C#的一个细节;当你声明myProp{get;set;}时,它会自动为你创建一个支持字段,并且会发生与此相反的交互。你可以全部尝试,看看会发生什么2)字段声明会保留存储空间,而没有机会定义或重新定义交互。重写发生在交互上,比如方法和属性getter/setter。一开始,当一个属性看起来像是存储时,您是否可以覆盖该属性似乎不太清楚。如果是这样的话,请记住这只是C#的一个细节;当您声明myProp{get;set;}时,它会自动为您创建一个支持字段,并针对该字段进行交互。