繁体   English   中英

我可以在 Java 的构造函数中添加多个覆盖方法吗?

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

就像在下面的例子中一样,我在构造函数中添加了两个覆盖方法 build() 和 buildAdd()。 所以可以做到这一点。

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

我假设您的类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

由于方法是在特定实例类型上调用的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM