This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Yes, interfaces use the "extends" keywords, followed by a list of extended interfaces -- there can be one or more. Classes extend classes, classes implement interfaces, interfaces extend interfaces, interfaces implement nothing.
About the enum: the compiler doesn't really "know" so much as it "assumes"; at that point, it's expecting to see enum values, and if it sees an open-paren, then that's assumed to be a constructor call. It "assumes' rather than "knows" because that's the only choice, and if the syntax turns out to be wrong, then it's an error.