Do I really need to define default constructor in java?

Расширяя тему сообщения ephemient, который, на мой взгляд, является наилучшим, следующее сделает трубу:

(
    @echo.line1
    @echo.line2 %time% %os%
    @echo.
    @echo.line4
) | more

В записи ephemient он перенаправил в начале, что является хорошим стилем, но вы также можете в конце перенаправьте так:

(
    @echo.line1
    @echo.line2 %time% %os%
    @echo.
    @echo.line4
) >C:\Temp\test.txt

Обратите внимание, что «@echo». никогда не включается в вывод и "@echo." сам по себе дает пустую строку.

32
задан thefourtheye 16 August 2016 в 19:00
поделиться

1 ответ

Существует также один любопытный случай, когда необходимо определить не конструктора аргумента. Как другой записал, если Вы не определите конструктора по умолчанию - то Java сделает это для Вас. Хорошо понять, как "значение по умолчанию, сгенерированное Java" конструктор, похоже. На самом деле это вызывает конструктора суперкласса, и это прекрасно. Давайте теперь вообразим один случай. Вы создаете класс Механизма:

public class Vehicle {
private String name;
private String engine;

public Vehicle(String name, String engine) {
    this.name = name;
    this.engine = engine;
}

public String makeNoise(){
    return "Noiseee";
} 
}

, Как мы видим, класс Механизма имеет, только один определил 2 конструкторов аргументов. Теперь давайте создадим Автомобильный класс который inheritates от класса Механизма:

public class Car extends Vehicle {

@Override
public String makeNoise() {
    return "Wrrrrrrr....";
}  }

, Возможно, это выглядит странным, но только одной причиной, почему не был бы он компилировать, является то, что Java не может создать конструктора по умолчанию для Автомобильного класса, которые называют супер класс Механизма. Класс механизма не имеет никакого конструктора аргумента, и он не может быть сгенерирован автоматически, в то время как 2 конструктора аргумента уже существуют.

я знаю, что это - очень редкий случай, но я нашел, что он как интересное знал.

0
ответ дан 27 November 2019 в 20:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: