![]() |
1
8
你是否考虑过:
|
![]() |
2
3
所有的
项目中还必须有一个完整的类定义。 最好创建一个子类,这样可以覆盖特定的方法。 就部分方法而言(与上面的链接相同):
在一个文件中不能有一半方法,在另一个文件中不能有另一半方法。 |
![]() |
3
2
你可以这样做:
|
![]() |
4
1
忘记部分,它有完全不同的语义。虚拟基类方法的重写器是否应调用基类方法不是自动的。它必须是文档的一部分。控制类中的onXXXX()方法就是一个很好的例子,msdn库文档有一个“要实现的注释”注释,警告调用基类方法通常是必要的。 如果将基类方法抽象化,则重写器就可以清楚地看到它。如果不是的话,你在强烈暗示应该这样做。如果您希望重写完全替换您的基本实现,那么您真的应该考虑将其抽象化。这种模糊性,加上重写器错误地重写而破坏基类的可能性,无疑是多态性的弱点之一。 |
![]() |
5
0
添加新的虚拟(不是抽象的,因为不是所有特定的实现都需要重写它?)方法设置为默认实现,以适应继承者在其自身实现的基础上拥有自己的附加步骤。 在默认实现的抽象方法实现的适当点调用虚拟方法。 您已经离开了抽象类,并且透明地增加了默认实现的灵活性。 |
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |