Я пытаюсь использовать расширенный класс для создания экземпляра, но немного запутался.

Мне очень трудно объяснить подобные вещи, но вот что я пытаюсь сделать:

У меня есть 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?

-1
Xylus 9 Фев 2015 в 18:43

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

1
Neeraj Jain 9 Фев 2015 в 16:15

Если Test3 extends Test2 он будет иметь значение value4. Что касается кострукторов, ваша строка в кострукторе Test2

test1 t=new test1();

Создайте новый объект Test1 внутри вашего Test2 объекта. Я думаю, вы хотели установить унаследованные переменные в вашем Test2, чтобы сделать это, переписать коструктор как:

super();
this.setValue3(5.5);

Функция super() вызывает конструктор суперкласса, а ключевое слово this относится к классу, который он использует. Поэтому в новом классе Test3 просто сделайте то же самое в своем конструкторе, чтобы {{X3 }} установлен на 5.5

0
Gianmarco Biscini 9 Фев 2015 в 16:03