Java重载和覆盖

San*_*ana 9 java oop

假设我在课堂上有两种方法说

public void eat(int i,String s)

public void eat(String s, int i)

那是什么感觉.超载还是覆盖?

Fer*_*deh 12

重载意味着具有相同名称但具有不同参数的两个或更多方法,就像您的示例一样.重写您从接口或抽象类实现方法,因此超类中的方法具有实现,并且子类中具有不同的方法,他们仍然拥有相同的方法名称和参数.


cod*_*ict 7

这将是方法重载,因为它满足方法重载的条件:

  • 必须有不同的参数列表
  • 如果参数列表也不同,可能有不同的返回类型
  • 可能有不同的访问修饰符
  • 可能抛出不同的例外

只有在涉及继承时才会发生覆盖.由于您的两个方法都在同一个类中,因此无法覆盖.


小智 6

这是超载.当您为同一方法签名提供不同的实现时,将在继承中使用覆盖.