Подтвердить что ты не робот

Переопределить основной метод

Можем ли мы переопределить метод, как указано ниже: -

"public static void main"

4b9b3361

Ответ 1

Нет. main является статическим методом и, следовательно, не является полиморфным. Вы можете скрыть это определение еще одного статического метода main в подклассе.

Ответ 2

Нет, и вы теряете фокус здесь. Основной метод имеет единственную цель и объявлен логически для этой единственной цели:

Основной метод в Java относится к классу, но не к объекту. Объекты, созданные в main() в Java, являются начальной точкой в ​​вашем приложении, нет возможности запустить приложение из конкретного метода экземпляра. Вот почему статическое ключевое слово имеет смысл с основным методом. Фактически, все части описания основного метода имеют смысл, когда вы думаете, как "jvm", и смотрите, что делает основной метод (запускает приложение):

  • public, потому что этот метод должен быть доступен jvm (не написано вами).
  • static, подразумевая, что этот метод может быть доступен без объекта (поскольку его представление никогда не изменяется), но здесь логика легко понятна, если вы снова думаете, как jvm; "У меня нет объектов для создания (создания экземпляров) объектов, поэтому мне нужен статический метод для запуска приложения, так как простой не является логическим способом получить конкретный метод экземпляра, но пока у меня ничего нет но для создания объектов".
  • void Этот метод не может логически вернуть что-либо, потому что еще ничего не нужно возвращать. Это начальная точка приложения. main Я главный метод, так как без меня у вас не будет приложения.
  • String[] args Отправьте мне данные, которые могут оказаться полезными для моего запуска.

Ответ 3

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

Ответ 4

Нет. Вы не можете переопределить статический метод.

В любом случае это не имеет смысла. Поскольку вам не нужен экземпляр класса, вам не нужно полиморфное поведение. Вы просто изменили бы все с SomeParent.main() на SomeChild.main()

Ответ 5

MAIN - это метод класса (поскольку его static по определению). Следовательно, нет смысла "переопределять" его (или, если на то пошло, какой-либо статический метод).

Концепция "переопределения" - это, например, методы.

Это хорошо читается в отношении того же самого.

Ответ 6

Нет, нельзя переопределять статические методы, поскольку они не являются методами уровня экземпляра, а методы класса.

Ответ 7

Я пробовал это, не знаю, является ли его правильный способ переопределить метод, но я могу переопределить основной метод, подобный этому,

class MainOverride {

    public static void main(String[] args) {

        MainOverridden mo = new MainOverridden();

        String [] s = {"a","b"};
        mo.main(s);


    }

}

class MainOverridden extends MainOverride {

    public static void main(String[] args) {

        System.out.println("Main overridden");

    }

}