Могу ли я добавить более одного метода переопределения в конструктор в Java? - PullRequest
0 голосов
/ 30 марта 2020

Как и в следующем примере, я добавил два метода переопределения build () и buildAdd () в конструктор. Так что это может быть сделано.

public class createData {
    ...
    public createData(DataAdd dataAdd){
        super(dataAdd);
        build();
        buildAdd(); 
      }
    @Override
    public void build(){
        ...
    }
    @Override
    public void buildAdd(){
        ...
    }
}

1 Ответ

0 голосов
/ 30 марта 2020

Полагаю, ваш класс createData (имена классов в Java должны быть заглавными, кстати) расширяет какой-то другой класс, верно?

Чтобы было ясно, вы не добавляете переопределения в конструктор вы добавляете переопределения в класс и вызываете их из конструктора.

Так что да, вы можете сделать это, вы даже можете сделать:

public class GenericCreateData
{
  public GenericCreateData(DataAdd dataAdd)
  {
    ...
    build();
    buildAdd();
  }

  public void build()
  {
    System.out.println("genericBuild");
  }

  public void buildAdd()
  {
    System.out.println("genericBuildAdd");
  }
}
public class SpecificCreateData extends GenericCreateData
{
  public SpecificCreateData(DataAdd dataAdd)
  {
    super(dataAdd);
  }

  @Override
  public void build()
  {
    System.out.println("specificBuild");
  }

  @Override
  public void buildAdd()
  {
    System.out.println("specificBuildAdd");
  }
}

вызов new GenericCreateData(dataAdd) выведет:

genericBuild
genericBuildAdd

вызов new SpecificCreateData(dataAdd) выведет:

specificBuild
specificBuildData

Так как методы вызываются по указанному c типу экземпляра

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