package Methoden_Referenzen;

public class WeitereBeispiele {
	public static void main(String[] args) {
		System.out.println(Berechnung.berechne(5, 5, Funktionssammlung::add));
		System.out.println(Berechnung.berechne(10, 8, Funktionssammlung::sub));
		
	}
}

//Interface Definition
interface Funktion {
	int apply(int a, int b);
}

//Klasse mit Methoden, die als Funktionen genutzt werden können
class Funktionssammlung {
	public static int add(int a, int b) {
		return a + b;
	}

	public static int sub(int a, int b) {
		return a - b;
	}
}

//Klasse, die die Berechnungen durchführt
class Berechnung {
	public static int berechne(int a, int b, Funktion funktion) {
		return funktion.apply(a, b);
	}
}
