Путание “переопределения закрытый метод”

Имел ту же проблему, потому что я экспортировал папку под управляемой версией папкой. Должен был удалить папку из TortoiseSVN, затем удалить папку из файловой системы (TortoiseSVN не нравятся неимеющие версию подпапки... почему нет???)

13
задан Rahul Garg 28 August 2009 в 11:41
поделиться

3 ответа

  1. Метод main находится внутри класса Override , поэтому, конечно, он может видеть закрытые члены класса Override .

  2. ] Вы не замещающий метод f в классе Производный , полиморфизма нет. Тип переменной po - Override , поэтому она будет принимать метод f из класса Override .

Обратите внимание, что метод f в классе Переопределение вообще не отображается в классе Производный . Метод f в классе Derived - это другой метод, который не имеет ничего общего с методом f в суперклассе.

24
ответ дан 1 December 2019 в 21:25
поделиться

Переопределение метода имеет три условия. Детский класс должен иметь то же имя, параметры и возвращаемое значение, что и его суперкласс. Но если и параметр, и возвращаемое значение различны, поэтому переопределение не существует! даже если два метода - разные методы! хорошо! вот так:

public class Parent {
          public  int addV(int a,int b){
        int s;
        s = a + b;
        return s;
    }
}

class Child extends Parent{
    public  void  addV(){
       //do...something
    }
}

Eclipse не сообщает об ошибке! потому что метод addV в классе Child отличается от метода addV в классе Parent. Как ваш экземпляр!

0
ответ дан 1 December 2019 в 21:25
поделиться
Override po = new Derived();
po.f();

Вы получаете доступ к собственному методу Override, даже если объект является производным, потому что в соответствии с правилами области действия частные члены класса считаются первыми, и, как написано в области действия Override, он ссылается на частные f, а так как его закрытый, он вообще не переопределяется в классе Derived, они будут переопределяться только в том случае, если подпись метода такая же.

Derived po = new Derived();
po.f(); 

Это правильный код, который будет вызывать функцию f Derived

2
ответ дан 1 December 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: