Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #28362

Re: vocabulary

From "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org>
Newsgroups comp.lang.java.programmer
References <8l0pl95jubrn24j0tgnqcc21arhkii83ko@4ax.com><535caadc$0$6712$9b4e6d93@newsspool2.arcor-online.net><ljibu5$98l$1@speranza.aioe.org><535cda24$0$6715$9b4e6d93@newsspool2.arcor-online.net><ljilqs$vvv$1@speranza.aioe.org><f2nql9dvkidjochtle75491kv8fnkpnllr@4ax.com> <ljk0dh$cmn$1@dont-email.me>
Subject Re: vocabulary
Date 2014-05-04 13:00 +0100
Message-ID <qMGdnW2W7d7itvvOnZ2dnUVZ8kWdnZ2d@bt.com> (permalink)

Show all headers | View raw


Martin Gregorie wrote:

> It seems to me that the only reason Java has both Abstract Class and
> Interface definitions is to sidestep having to implement multiple
> inheritance

FWIW, I disagree with this entirely.

For me, as for [some] others, interfaces are an expression of a /contract/  --  
they are used to communicate guarantees/requirements between producers and 
consumers of APIs.

Abstract classes, on the other hand, are nothing to do with contractual 
communication between programmers.  They are skeleton implementations.

It's unfortunate that Java's syntax makes the two -- unrelated -- constructs 
looks so similar.  A different language might present the same concepts very 
differently.

One language design that didn't conflate the two concepts would be not to allow 
class names to appear in type declarations, but only interface names (with some 
simple syntax for defining a class /and/ it's interface[s] at the same time).

Asking people to expound on the difference[s] between interfaces and abstract 
classes used to be one of my favourite interview questions (in the days when I 
did interviews -- now happily past).  But I gave it up since it seemed that all 
I ever got were canned responses along the lines of "you can include method 
definitions in an Abstract class, you can't in an interface" (probably learned, 
more-or-less by heart, at university).

So my answer to Roedy's question would be along the lines of:

"An optionally-top-level syntactic construct delimited by curlies {}."  (That 
covers enums too -- which I think is in the spirit of the question.)

Although in the contexts where interface names and class names are used as type 
names, we can "cancel out" the "names" bit, and call them both types ;-)

    -- chris 

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

vocabulary Roedy Green <see_website@mindprod.com.invalid> - 2014-04-26 21:09 -0700
  Re: vocabulary markspace <markspace@nospam.nospam> - 2014-04-26 21:25 -0700
    Re: vocabulary "Qu0ll" <Qu0llSixFour@gmail.com> - 2014-04-27 17:30 +1000
  Re: vocabulary Richard Maher <maher_rjSPAMLESS@hotmail.com> - 2014-04-27 14:42 +0800
  Re: vocabulary Marcel Müller <news.5.maazl@spamgourmet.org> - 2014-04-27 08:59 +0200
    Re: vocabulary "Qu0ll" <Qu0llSixFour@gmail.com> - 2014-04-27 17:33 +1000
      Re: vocabulary Marcel Müller <news.5.maazl@spamgourmet.org> - 2014-04-27 12:21 +0200
        Re: vocabulary "Qu0ll" <Qu0llSixFour@gmail.com> - 2014-04-27 20:23 +1000
          Re: vocabulary Roedy Green <see_website@mindprod.com.invalid> - 2014-04-27 12:52 -0700
            Re: vocabulary Martin Gregorie <martin@address-in-sig.invalid> - 2014-04-27 22:30 +0000
              Re: vocabulary Marcel Müller <news.5.maazl@spamgourmet.org> - 2014-04-28 08:23 +0200
              Re: vocabulary "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-05-04 13:00 +0100
                Re: vocabulary Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-05-04 08:44 -0400
  Re: vocabulary lipska the kat <lipskathekat@example.com> - 2014-04-27 09:01 +0100
    Re: vocabulary "Qu0ll" <Qu0llSixFour@gmail.com> - 2014-04-27 19:53 +1000
      Re: vocabulary lipska the kat <lipskathekat@example.com> - 2014-04-27 11:43 +0100
  Re: vocabulary Jeff Higgins <jeff@invalid.invalid> - 2014-04-27 07:14 -0400
  Re: vocabulary Jeff Higgins <jeff@invalid.invalid> - 2014-04-27 07:32 -0400

csiph-web