Я пытаюсь отследить некоторый код и отношения между родительским и дочерним классом.Родительский класс имеет следующее определение:
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?