黑马程序员技术交流社区

标题: 关于一个重载的问题 [打印本页]

作者: 高宜    时间: 2012-6-6 19:52
标题: 关于一个重载的问题
  1.   public override string ToString()
  2.         {
  3.             return String.Format("{0}{1}", firstname, lastname);
  4.         }
复制代码
重载string.Tostring方法为什么要写成上述情况而不是public override string.Tostring(){}
作者: 朱亮辉    时间: 2012-6-6 22:21
public override string.Tostring(){} 这种写法是编译不通过的,这个就是C#的语法规则

string 是返回值 override 这个是重写要加的关键字,必须加载作用域修饰符和返回类型值之间, 而且重写的方法必须是虚方法
作者: 杨雪    时间: 2012-6-6 23:28
方法重写的形式和定义一个方法唯一的区别在于加了一个override关键字,如楼上所说,这是C#语法要求。需要注意的是,只有声明为virtual的方法才能重写。
作者: 钟广雄    时间: 2012-6-9 20:10
要重载的,要基类要有虚方法,派生类才可以override,至于为什么不可以那样写,本来Csharp就没有这种写法,string 只是一种类型,是方法执行要返回值是string的类型,
  返回类型可以有int bool  double  long 等
作者: 蒋春    时间: 2012-6-9 23:26
string.ToString(){}这样定义方法的语法不对,不能通过编译;
重写方法,就必须按照方法的定义去写;
string.ToString()是调用string下面的一个方法了
作者: 王国文    时间: 2012-6-10 09:32
朱亮辉 发表于 2012-6-6 22:21
public override string.Tostring(){} 这种写法是编译不通过的,这个就是C#的语法规则

string 是返回值 ov ...

什么是虚方法
作者: 王国文    时间: 2012-6-10 09:34
public override string.Tostring(){}  肯定编译不过,没有这样的方法名string.Tostring,还有方法要求返回值是string




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2