Отслеживание наследственных отношений? - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь отследить некоторый код и отношения между родительским и дочерним классом.Родительский класс имеет следующее определение:

public class A implements Comparable<A> {
  private String owner;
  public A(String s) {
    owner = s;
  }
  //More methods related to this class
}

Предположим, B является производным (дочерним классом) от A, а B имеет переменную экземпляра типа String с именем landlord, которая также имеетметод получения (называется getLandlord()).B также имеет два параметра String в конструкторе: owner и landlord.Будет ли объявление и конструктор B выглядеть так?

public class B extends A {
  private String landlord;
  public B(String s, String landlord) {
    super(s); //From parent class
    this.landlord = landlord;
  }
}

У меня также есть метод, который должен возвращать landlord всякий раз, когда фактический параметр является экземпляром B.Исходный код, который я написал, был таким:

public static String house(A a) {
  return a.getLandlord();
}

Это вернуло ошибку компилятора, и я использовал приведение, чтобы попытаться избежать этой ошибки компилятора:

public static String house(A a) {
  return ((B) a).getLandlord();
}

Когда я пишу этот код:

B.house(new A("Johnson"))

получу ли я строку landlord, потому что я использую downcasting?

...