Наследование в Java (вопрос от новичка)

193
08 августа 2021, 22:30

Не могу понять, почему код не работает.

public class Exp{
  String word;
  Exp(String name){
    word = name;
  }
  public void method(){
    System.out.println(word);
  }
}
public class A{
  A(String name){
    Exp ex = new Exp(name);
  }
}
public class B extends A{
  B(){
    super("Hello World!");
  }
  public void textMethod(){
    ex.method();
  }
}

Выдает ошибку javac B.java B.java:6: error: cannot find symbol ex.method();

Как я понимаю, класс B должен наследовать объект ex с класса A. Не могли бы подсказать почему код не работает и как сделать так, чтобы он заработал.

Answer 1

У Вас ex - локальная переменная в конструкторе A.

public class A{
  protected Exp ex;
  A(String name) {
    ex = new Exp(name);
  }
}
READ ALSO
docker-compose: нет связи между контейнерами

docker-compose: нет связи между контейнерами

У меня есть три микросервиса, которые я запускаю в докере

331
Ошибка компиляции библиотеки design в Eclipse

Ошибка компиляции библиотеки design в Eclipse

После импорта и компиляции библиотеки design получаю ошибки вида:

180
Spring RESTFul и View для него

Spring RESTFul и View для него

У меня есть RESTful контроллер для приложения, позволяющее просматривать записи из БД по их id

410
Какие ошибки присутствуют в данном “алгоритме”? [закрыт]

Какие ошибки присутствуют в данном “алгоритме”? [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

156