Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Abstract function with different parameters

I want to declare an abstract class with an abstract function calc() and use this with different types of parameter.

public abstract class AbstractCalculation{
    public abstract double calc();
    ...
}

public StringClass extends AbstractCalculation{
    public double calc(String a, String b);
}

public DoubleClass extends AbstractCalculation{
    public double calc(double a, double b);
}

How can I solve this problem?

like image 631
Erik Avatar asked Oct 24 '25 18:10

Erik


1 Answers

Maybe you mean to use Generics like this :

public abstract class AbstractCalculation<T> {
    public abstract double calc(T...params);//Here you can pass N param with any type
}

To extends from this abstract class, you can use :

public class DoubleClass extends AbstractCalculation<Double> {

    @Override
    public double calc(Double... params) {
        //Your action here
    }
}

public class StringClass extends AbstractCalculation<String> {

    @Override
    public double calc(String... params) {
        //Your action here
    }
}
like image 59
YCF_L Avatar answered Oct 26 '25 08:10

YCF_L



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!