Can I add more than one override method in a constructor in Java?

Soumik Das :

Like in the below example, I added two overrides methods build() & buildAdd() in the constructor. So can this be done.

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

I assume your class createData (class names in Java should be capitalised by the way) extends some other class right?

To make it clear, you're not adding overrides in the constructor, you're adding overrides in the class and calling them from the constructor.

So yes, you can do that, you can even do:

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");
  }
}

calling new GenericCreateData(dataAdd) will output:

genericBuild
genericBuildAdd

calling new SpecificCreateData(dataAdd) will output:

specificBuild
specificBuildData

Since methods are called on the specific instance type

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=366566&siteId=1