Я пытаюсь использовать расширенный класс для создания экземпляра, но немного запутался.
Мне очень трудно объяснить подобные вещи, но вот что я пытаюсь сделать:
У меня есть test1.java, который содержит
private double value1;
private double value2;
private double value3;
И геттеры и сеттеры для них всех.
У меня есть test2.java, который расширяет test1.java.
У меня новая ценность
private double value4;
В test2.java у меня также есть конструктор со следующим внутри него
test1 t = new test1();
t.setValue3(5.5);
У меня также есть сеттер и получатель для нового значения 4.
Наконец-то у меня появился третий класс test3.java.
Я хочу создать несколько экземпляров, используя это, однако я не знаю, как использовать test2.java.
Все, что я знаю, это то, что я могу создать экземпляр с помощью test1.java, но как мне также включить материал test2.java, чтобы каждый экземпляр имел значение 3, равное 5.5, а также включал значение 4?
2 ответа
Если test2.java
расширяет test1.java
, то все члены public/protected
(а именно определенные геттеры и сеттеры) наследуются в test2.java
Теперь в test3.java
вам нужно просто сделать это
- Создать объект класса
test2.java
(скажем, test2)
Теперь вызовите столько геттеров и сеттеров, которые вы хотите вызвать.
test2.getValue1();
test2.getValue2();
test2.getValue3();
test2.setValue4(2.2);
И в конструкторе test2.java
вы можете напрямую вызвать setValue3(2.5)
вместо создания нового объекта класса test1.java
каждый экземпляр будет иметь значение3 5,5
Да. Теперь всякий раз, когда вы создаете объект класса test2.java
, вы получите value3 as 5.5
Если Test3 extends Test2
он будет иметь значение value4
. Что касается кострукторов, ваша строка в кострукторе Test2
test1 t=new test1();
Создайте новый объект Test1
внутри вашего Test2
объекта. Я думаю, вы хотели установить унаследованные переменные в вашем Test2
, чтобы сделать это, переписать коструктор как:
super();
this.setValue3(5.5);
Функция super()
вызывает конструктор суперкласса, а ключевое слово this
относится к классу, который он использует. Поэтому в новом классе Test3
просто сделайте то же самое в своем конструкторе, чтобы {{X3 }} установлен на 5.5
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.