Является ли «унаследовано» правильным термином для объяснения статического метода суперкласса, к которому можно получить доступ через подкласс?

Уточнение: этот вопрос не о модификаторе доступа

Подтверждено, что операторы 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
  }
}

В этом случае обратите внимание, что у нас нет полиморфизма, это правильный термин, чтобы сказать, что «статический метод наследуется, но не переопределяется, статический метод подкласса скрывает статический метод суперкласса»?

Последнее сомнение, для этих двух терминов, «унаследованный» и «переопределяемый», который напрямую связан с термин «полиморфизм»?

14
задан Nathan Hughes 7 May 2017 в 03:26
поделиться