How can an enum have abstract methods?