在Java中,重载和重载方法之间是否存在任何无人问津?

时间:2014-12-28 09:02:57

标签: java polymorphism

在Java中,重载和重载方法之间是否存在任何无人问津?我试图找到"重载"之间的空间。并且"被覆盖"。

在一个场景中,我在一个类中放置了两个方法,以使它们重载:

float my_method(int x, int y) {....}
int my_method(int x) {....}

然后,在另一个中,我修改了方法并将它们放在两个具有层次关系的不同类中,以使它们被覆盖:

void my_method(int x, int y, int z) {....}
void my_method(int x, int y, int z) {....}

可以做些什么,以便上面写的方法既不属于重载类也不属于被覆盖的类别?可能吗?或者,以上陈述是真的吗?

1. Two methods that fail to be overloaded are automatically overridden
2. Two methods athat fail to be overridden are automatically overloaded

1 个答案:

答案 0 :(得分:0)

还有第三种情况,其中子类的方法与超类的方法具有相同的签名,但是子类不能访问超类的方法(即& #39;私有或包私有,超类在不同的包中)。

在这种情况下,子类的方法不会覆盖超类的方法。它只是隐藏它。

在超级课程中:

private void my_method(int x, int y, int z) {....}

在子课程中:

// adding @Override here would cause a compilation error
public void my_method(int x, int y, int z) {....}