Получение видимого путаницы ... Я читал, что статический метод не переопределяет, но в нижеприведенной программе не выполняется это правило ... Может кто-нибудь объяснить это подробно. Вот программа
Вывод программы является выход класса класса А.Статические методы Работа
public class JavaApplication6 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
A a=new B();
a.r();
}
}
class B extends A{
static int d=200;
static void r(){
System.out.println("hiiiiiiiiiiiiiiiii r"+d);
}
}
class A {
static int a=10,c=20;
static void r(){
System.out.println("hiiii ar"+a);
}
}
Если выход из метода A, то он не отменяется. – Hacketo
На моем ноутбуке ваша программа произвела «hiiii ar10», что означает, что работает A.r(). Таким образом, результат показал, что для статического метода не происходит чрезмерного перерасхода. –
Ключевое слово 'extend' означает наследование, а не переопределение. Кроме того, два класса не являются «статическими» - они имеют «статические» методы, но сами классы не являются статическими. – TDG