In my brief Java experience many years ago, I ran across what they called 'interfaces'. These are classes that describe a set of methods but don't actually define them. Instead, each of those methods must be overridden by any subclass. Failure to override those methods results in a compile time error.

An example might be a 'Shape' class as an interface. Every shape has an area, but every shape ('circle', 'square', 'triangle'...) computes that area differently. With an interface, you enforce the requirement that any subclasses have an 'area' method. If ($circle->isa('Shape')), you know it's going to have an 'area' method written specifically for whatever kind of shape that is...

As I'm working in perl, I keep trying to build things that do that. I'm dumb enough to build a class and forget to override that one rarely called but vital method. So, I like things that yell at me during compile time.

Any suggestions?

Thanks!

--Pileofrogs

Update: The key to what I want is that it complains at compile time, or at least object initialization. Complaining when I attempt to call the method is too late...


In reply to Java Style Interface Objects? by pileofrogs

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.