Уточнение: этот вопрос не о модификаторе доступа
Подтверждено, что операторы Bm () и bm () работают в следующем коде:
class A {
static void m() { //some code }
}
class B extends A {
}
class Example {
public static void main (String [] args) {
B.m(); // running A's m() static method
}
public void try() {
B b = new B();
b.m(); // running A's m() static method
}
}
Мой вопрос: можем ли мы сказать " статический метод унаследован »?
если« унаследован »- правильный термин, если мы добавим метод в класс B, мы будем иметь ту же сигнатуру статического класса:
class A {
static void m() { //some code }
}
class B extends A {
static void m() { //some code }
}
class Example {
public static void main (String [] args) {
B.m(); // running B's m() static method
}
public void try() {
B b = new B();
b.m(); // running B's m() static method
A a = new B();
a.m(); // running A's m() static method, no polymorphism
}
}
В этом случае обратите внимание, что у нас нет полиморфизма, это правильный термин, чтобы сказать, что «статический метод наследуется, но не переопределяется, статический метод подкласса скрывает статический метод суперкласса»?
Последнее сомнение, для этих двух терминов, «унаследованный» и «переопределяемый», который напрямую связан с термин «полиморфизм»?