如何传递对抽象类的引用 - Java [英] How to pass reference to abstract class - Java

查看:30
本文介绍了如何传递对抽象类的引用 - Java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Data data = new Data("path"); //I read data from excel and save. This code is in Main.

public abstract class Generator{
   public abstract double[][] generate();
   //here I need reference - data
   }

public class GeneratorA extends Generator{
   public double[][] generate(){
   //first implementation - I want to work with data
   }
}


public class GeneratorB extends Generator{
   public double[][] generate(){
   //second implementation - I want to work with data
   }
}

我需要的是将引用(数据)传递给抽象类 Generator.我可以在 GeneratorA/GeneratorB 的构造函数中传递引用,但是我有更多的子类并且效率低下.有什么方法可以将参考数据传递给 abstr.类生成器?我只想从类 Generator 继承引用...谢谢!

What I need is passing reference (data) to abstract class Generator. I can pass reference in constructors of GeneratorA/GeneratorB but I have more child classes and it is inefficient. Is any way how to pass reference data to abstr. class Generator? I just want to inherit reference from class Generator... Thanks!

推荐答案

您必须向抽象类添加构造函数.然后你只需要在子类构造函数中调用 super(data).

You must add a constructor to your abstract class. Then you just have to call super(data) in subclasses constructor.

查看下面的代码:

public abstract class Generator{

    Data data;

    public Generator(Data data) {
        this.data = data;
    }

    public abstract double[][] generate();
        //here I need reference - data
    }
}

public class GeneratorA extends Generator{

    public GeneratorA(Data data) {
        super(data);
    }

    public double[][] generate(){
        //first implementation - I want to work with data
    }
}


public class GeneratorB extends Generator{

    public GeneratorB(Data data) {
        super(data);
    }

    public double[][] generate(){
    //second implementation - I want to work with data
    }
}

这篇关于如何传递对抽象类的引用 - Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆