I am trying to implement a pipeline design pattern using Java 8 with the below article for my reference:
https://stackoverflow.com/a/58713936/4770397
Code:
public abstract class Pipeline{
Function<Integer, Integer> addOne = it -> {
        System.out.println(it + 1);
        return it + 1;
    };
Function<Integer, Integer> addTwo = it -> {
        System.out.println(it + 2);
        return it + 2;
    };
Function<Integer, Integer> timesTwo = input -> {
        System.out.println(input * 2);
        return input * 2;
    };
final Function<Integer, Integer> pipe = sourceInt
    .andThen(timesTwo)
    .andThen(addOne)
    .andThen(addTwo);
}
I am trying to add one abstract method & want to override it.
I am trying to do something like: 
abstract BiFunction<Integer, Integer,Integer> overriden; 
and change pipe to: 
final Function<Integer, Integer> pipe = sourceInt
    .andThen(timesTwo)
    .andThen(overriden)
    .andThen(addOne)
    .andThen(addTwo);
}
But the problem is, I don't know to declare a Function<Integer, Integer> as an abstract method.
 
     
     
    