黑马程序员技术交流社区

标题: 覆盖的疑问 [打印本页]

作者: 周斌    时间: 2012-11-5 18:39
标题: 覆盖的疑问

  1. <P>public class Upton {
  2. public static void main(String[] args)
  3. {
  4.   public void amethod(int i)
  5.   {}
  6.   public void amethod(int z)
  7.   {}
  8. }
  9. }
  10. </P>
复制代码
上面的一段程序为什么无法通过编译呢~?

作者: 金曦    时间: 2012-11-5 18:54
在同一个类中,允许存在一个以上的同名函数,但是它们的参数个数或参数类型不同才可以。
但是你的参数是一样的,虚以机,不知道该调用哪一个。所以错误
作者: 朱宏青    时间: 2012-11-5 19:01
首先,覆盖是子类继承父类的时候,把父类的方法重写,这叫覆盖,哪有一个类就有覆盖这个概念的。

你这个程序明显不对,方法的参数都一样,那么进来以后程序该往那边走呢?就像一个分岔道,左边写着“男性请往这边走” 右边也写着”男性请往这边走“,那该往哪走呢?

另外说下,同一个类里方法可以重载 ---》录入的参数不同走不同的路线。

嘛 就是这样
作者: 周斌    时间: 2012-11-5 20:48
金曦 发表于 2012-11-5 18:54
在同一个类中,允许存在一个以上的同名函数,但是它们的参数个数或参数类型不同才可以。
但是你的参数是一 ...

谢谢                          
作者: 黑马周磊    时间: 2012-11-5 21:07
覆盖(重写):父子类关系才可以,子类继承父类后,子类里的函数(方法)可以重写父类中的函数,前题是子类中重写的函数定义(函数名、权限、参数、静态或非静态)必须和父类中的函数定义一模一样才行。
同一个类中的函数只可以重载(参数类型或参数个数不同的情况下)。
作者: 葛旭东    时间: 2012-11-5 21:16
朱宏青 发表于 2012-11-5 19:01
首先,覆盖是子类继承父类的时候,把父类的方法重写,这叫覆盖,哪有一个类就有覆盖这个概念的。

你这个程 ...

呵呵,这个解释很给力啊




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