在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
答案 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) {....}