-public class XorGate extends BasicComponent
-{
- private WireArray a, b, out;
-
- public XorGate(int processTime, WireArray a, WireArray b, WireArray out)
- {
- super(processTime);
- this.a = a;
- a.addObserver(this);
- this.b = b;
- b.addObserver(this);
- this.out = out;
+/**
+ * Outputs 1 when the number of 1 inputs is odd.
+ *
+ * @author Fabian Stemmler
+ */
+public class XorGate extends MultiInputGate {
+ public XorGate(int processTime, WireArray out, WireArray... in) {
+ super(processTime, Util::xor, out, in);