No, really

In support of my earlier claim that Java enums are subclassable, here is an example inspired by McGraw-Hill’s SCJP 6 study guide:

public enum CoffeeSize {
    REGULAR(4), BIG(8), HUGE(12), OVERWHELMING(16) {
        public void drink() { super.drink(); System.out.println("barf"); } };
    private int oz;
    CoffeeSize(int oz) { this.oz = oz; }
    public void drink() { for (int n = 0; n < oz; ++n) System.out.println("glug"); }
    public static void main(String[] args) { CoffeeSize.OVERWHELMING.drink(); }
}

2 thoughts on “No, really”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.