мне сказали, что статические методы в Java не имеют наследования, но когда я пытаюсь следующий тестМетоды класса Наследование
package test1;
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
TB.ttt();
TB.ttt2();
}
}
package test1;
public class TA {
static public Boolean ttt()
{
System.out.println("TestInheritenceA");
return true;
}
static public String test ="ClassA";
}
package test1;
public class TB extends TA{
static public void ttt2(){
System.out.println(test);
}
}
напечатанное :
TestInheritenceA ClassA
так что у java статических методов (и полей) есть наследование (если вы пытаетесь вызвать метод класса, он идет по цепочке наследования, ища методы класса). Неужели это не так? И есть ли какие-либо языки OO наследования, которые перепутаны с методами класса?
Так что, по-видимому, статические методы унаследованы, но не могут быть переопределены, так же как и C# поделиться этой проблемой? Есть ли другие языки?
Добавить также «нефинал» в ответ :) –
@Shimi: очень верно, вместо этого вы просто оставите свой комментарий. – Oak
Я полностью забыл этот вопрос и сделал ту же ошибку, обсуждая java на irc несколько дней назад. –