Полагаю, ваш класс 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 типу экземпляра