概念不清,知道的进来

zhangwenqian 2010-03-17 10:02:02
为什么 "在抽象方法声明中使用 static 或 virtual 修饰符是错误的。"

...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
-汪帆- 2010-03-17
  • 打赏
  • 举报
回复
1楼是扯淡 2楼是正解
calltaotao 2010-03-17
  • 打赏
  • 举报
回复
static静态方法的调用是不需要实例对象的...
如果抽象类允许静态方法存在,那么若该抽象类未被实现,调用的抽象静态方法根本不存在,这时怎么调用.

C#是单继承的...可以理解为abstract是virtual的超集...因为virtual必须被子类实现,而abstract子类可以选择实现也可以不实现(不实现则继续为抽象类)...因此有了abstract就没必要virtual了
孤剑 2010-03-17
  • 打赏
  • 举报
回复
这么说吧,如果是抽象方法,可以使用 static 或 virtual 会有什么后果?

abstract class (没有任何类继承或实现此类) 能否直接被实例化吗?

比如:存在 abstract class A
能使用 A = new A(); 吗
static 是在类型初始化时执行的,不能实例化,就无法完成 static 的初始化;
virtual 也是一样的道理,是某个方法的默认实现,连类都无法首次完成示例,何来创建呢?

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧