C# 中为何可以重写object类的ToString()方法

twlyy 2016-06-03 02:23:56
C# 中为何可以重写object类的ToString()方法?重写不是需要基类必须要有 virtual、abstract 或 override等修饰吗?
重写ToString()方法,那么ToString()的基类不是Object吗?没有用virtual、abstract 或 override修饰。
...全文
329 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2016-06-03
  • 打赏
  • 举报
回复
明明是virtual
正怒月神 2016-06-03
  • 打赏
  • 举报
回复
这是object中的
public class Object
    {
public virtual string ToString();
    }
  • 打赏
  • 举报
回复
谁告诉你Object的ToString方法不是virual的……
  • 打赏
  • 举报
回复
嗯,sorry,上面不准确。object 和 Object 都是可以写的。object 是c#中的关键字,它用来宏代换.net 中的Object类型。
  • 打赏
  • 举报
回复
你看的书上说“重写object的ToString方法”,这是假设你已经知道任何自定义类型都从object继承这个实事才说的。如果你不知道,那么就会看不懂书上说的啦。
xdashewan 2016-06-03
  • 打赏
  • 举报
回复
public virtual string ToString()不是有virtual吗https://msdn.microsoft.com/zh-cn/library/system.object.tostring(v=vs.90).aspx
  • 打赏
  • 举报
回复
如果你声明的 class 没写父类,那么默认地就是 object 作为父类。因此所有自定义类型都是从 object 继承的(注意是 object,不是 Object)。 这里,在c#中,你不需要特意写上
:object
这种代码
wireboy 2016-06-03
  • 打赏
  • 举报
回复
子类可以直接覆盖基类方法,嗯 就是这样

110,535

社区成员

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

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

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