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 *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

 

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