Пользователь может перегрузить конструктор класса по умолчанию в java. Это правда или ложь? - PullRequest
0 голосов
/ 27 апреля 2020

Для приведенного ниже кода мне удалось перегрузить конструктор по умолчанию, но согласно книге JAVA OCA SE 8, написанной Мала Гуптой, это утверждение неверно, оно говорит, что мы не можем перегружать конструктор по умолчанию, какие-либо мысли?

package com.sandy.OCA_prep;


class App
{
    static
    {
        System.out.println("inside static block");
    }
    App(int a)
    {
        System.out.println("inside the integer overloaded constructor");
    }
    public static void main( String[] args )
    {  
      System.out.println("hello world");


      App app2=new App(5);

    }
}

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Фраза «перегрузка конструктора по умолчанию» бессмысленна:

  • Перегрузка означает наличие нескольких методов с одинаковыми именами, но с разными списками параметров.
  • Конструктор по умолчанию: конструктор без аргументов, который сгенерирует для вас компилятор, если вы не укажете никакой другой конструктор. У него нет аргументов по определению.
  • Поскольку перегрузка требует разных списков параметров, а конструктор по умолчанию по определению имеет только один возможный список параметров (пустой), эти два понятия не взаимодействуют осмысленно.

Вы можете указать свой собственный конструктор без аргументов и таким образом остановить компилятор от создания конструктора по умолчанию, но я бы не назвал это "перегрузкой конструктора по умолчанию".

0 голосов
/ 27 апреля 2020

Мне удалось перегрузить конструктор по умолчанию

Нет, вы не были. Здесь нет перегрузок. Перегрузка означает наличие двух или более одного и того же метода, различимого по разным спискам параметров.

Объявляя ваш собственный конструктор, конструктор по умолчанию - неявный конструктор, который используется, если вы не объявляете свой собственный - не приложенное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...