Можем ли мы переопределить метод, как указано ниже: -
"public static void main
"
Можем ли мы переопределить метод, как указано ниже: -
"public static void main
"
Нет. main
является статическим методом и, следовательно, не является полиморфным. Вы можете скрыть это определение еще одного статического метода main
в подклассе.
Нет, и вы теряете фокус здесь. Основной метод имеет единственную цель и объявлен логически для этой единственной цели:
Основной метод в Java относится к классу, но не к объекту. Объекты, созданные в main()
в Java, являются начальной точкой в вашем приложении, нет возможности запустить приложение из конкретного метода экземпляра. Вот почему статическое ключевое слово имеет смысл с основным методом. Фактически, все части описания основного метода имеют смысл, когда вы думаете, как "jvm", и смотрите, что делает основной метод (запускает приложение):
public
, потому что этот метод должен быть доступен jvm (не написано вами).static
, подразумевая, что этот метод может быть доступен без объекта (поскольку его представление никогда не изменяется), но здесь логика легко понятна, если вы снова думаете, как jvm; "У меня нет объектов для создания (создания экземпляров) объектов, поэтому мне нужен статический метод для запуска приложения, так как простой не является логическим способом получить конкретный метод экземпляра, но пока у меня ничего нет но для создания объектов".void
Этот метод не может логически вернуть что-либо, потому что еще ничего не нужно возвращать. Это начальная точка приложения.
main Я главный метод, так как без меня у вас не будет приложения.String[] args
Отправьте мне данные, которые могут оказаться полезными для моего запуска.Мы не можем переопределить статический метод, потому что статический метод - это метод класса и область действия этого метода внутри самого самого класса. Поэтому, если вы хотите переопределить силу, тогда вы должны определить ее за пределами этой области видимости класса, которая не имеет смысла.
Нет. Вы не можете переопределить статический метод.
В любом случае это не имеет смысла. Поскольку вам не нужен экземпляр класса, вам не нужно полиморфное поведение. Вы просто изменили бы все с SomeParent.main()
на SomeChild.main()
MAIN - это метод класса (поскольку его static
по определению). Следовательно, нет смысла "переопределять" его (или, если на то пошло, какой-либо статический метод).
Концепция "переопределения" - это, например, методы.
Это хорошо читается в отношении того же самого.
Нет, нельзя переопределять статические методы, поскольку они не являются методами уровня экземпляра, а методы класса.
Я пробовал это, не знаю, является ли его правильный способ переопределить метод, но я могу переопределить основной метод, подобный этому,
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");
}
}