class Ideone {
    static abstract class MyAbstractClass <T extends Enum<T>> {
        public void myMethod(T cmd) {
            System.
out.
println("parent called");         }
        public void update(T cmd) {
            myMethod(cmd);
        }
    }
 
    enum CMD {
       CMD_1, CMD_2
    }
 
    static class Child extends MyAbstractClass<CMD> {
        public void myMethod(CMD cmd) {
            System.
out.
println("child called");             if (cmd == CMD.CMD_1) {
                //
            }
        }
    }
 
	public static void main 
(String[] arg
) { 		Child child = new Child();
        child.update(CMD.CMD_1);
	}
}
				Y2xhc3MgSWRlb25lIHsKICAgIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBNeUFic3RyYWN0Q2xhc3MgPFQgZXh0ZW5kcyBFbnVtPFQ+PiB7CiAgICAgICAgcHVibGljIHZvaWQgbXlNZXRob2QoVCBjbWQpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwYXJlbnQgY2FsbGVkIik7CiAgICAgICAgfQogICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZShUIGNtZCkgewogICAgICAgICAgICBteU1ldGhvZChjbWQpOwogICAgICAgIH0KICAgIH0KCiAgICBlbnVtIENNRCB7CiAgICAgICBDTURfMSwgQ01EXzIKICAgIH0KCiAgICBzdGF0aWMgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBNeUFic3RyYWN0Q2xhc3M8Q01EPiB7CiAgICAgICAgcHVibGljIHZvaWQgbXlNZXRob2QoQ01EIGNtZCkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNoaWxkIGNhbGxlZCIpOwogICAgICAgICAgICBpZiAoY21kID09IENNRC5DTURfMSkgewogICAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJnKSB7CgkJQ2hpbGQgY2hpbGQgPSBuZXcgQ2hpbGQoKTsKICAgICAgICBjaGlsZC51cGRhdGUoQ01ELkNNRF8xKTsKCX0KfQ==