/************************************************************************* * Compilation: javac Gate.java * Execution: java Gate * Dependencies: And.java Or.java Not.java * * Superclass for logic gates. q * *************************************************************************/ abstract class Gate { abstract public boolean signal(); public static void main(String[] args) { Input in0 = new Input(); Input in1 = new Input(); Input in2 = new Input(); Gate and = new And(in0, in1); Gate not = new Not(in2); Gate or = new Or (and, not); in0.turnOn(); in1.turnOn(); in2.turnOn(); System.out.println(or.signal()); in0.turnOff(); in1.turnOn(); in2.turnOn(); System.out.println(or.signal()); in0.turnOff(); in1.turnOff(); in2.turnOff(); System.out.println(or.signal()); } }