有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

与下面的示例一样,我添加了两个覆盖方法build();构造函数中的buildAdd()。所以这是可以做到的

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

共 (1) 个答案

  1. # 1 楼答案

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

    因为方法是在特定的实例类型上调用的