I am trying to explain Extend & Interface through anological way . Does these sound Correct !

Posted on 2004-09-05
Last Modified: 2010-03-31
I am trying to define the Extending and Interface definitions in an analogical way . Let me know if this will be OK ?

Extending Analogical Example

Parental Property Inheritance                  |      The concepts of Object Oriented
                                                         |      Inheritance  is also the same .
Inherited Parental Property  means you |      It  means that  you  have  all  the data variables and
had inherited every thing what your      |      Methods of the parent class. This enables you have
parents had without much hard work!   |      More  lines  of code with the required logic  without
                                                         |     much hard work.

If you are renovating your parents property        |  class MyPropertyClass extends ParentPropertyClass
by adding a  swimming pool  and car park    |  {
besides that  house  all you do is spend        |//You write  the body of swimming Pool;
money  to build only  for  these two  things,  |   //You write the body  of Car Park;
so you  save  money by not building a house.|  // You need not write about the house as you are
So  if you come from aKings family you              |  //extending your  parents house;
could inherit all your  Parents,Grand Parents |   }
Etc. If you  destroy the property you   have   |
nothing   and  in  in   JAVA it is called           |
Method Over-ridding.                                  |
                                                                Even JAVA there is no limit in the number  of
                                                                extensions  but  remember each class can extend
                                                               only one  super class  at  a time as JAVA does not
                                                                support Multiple inheritance

            AIRPORT CHECK-IN                                |      CLIENT CHECK-IN.
When  you  want to  Fly out to another               |   Even  in  OO  Technique  the Bean  
country you  can   board  the  Aircraft                    |  Classes are not directly Exhibited to the
only  when you show  your passports which          |  Clients but uses an Interface  
has your Signature, Expiry Date    etc.                    | which has the method structure  
This means  that the CLERK identifies you                | i.e  method signatures  of the Class  
through the Passport as she sees Your                 | with no  logic   or  you  can say            
 image and Signature .                                       |  Interface has the skeleton of the Class.
                                                                        |  The Clients talk to the bean Class
                                                                        | through  the interface.

                                                                        | So analogically  if you want to compare  
                                                                        |  with the Airport Check-in     example   the
CLERK LOOKS INTO PASSPORTs TO KNOW           | Clerk will be your client ,The passport  which
                                           THE PASSENGER     |  identifies you will be  the interface as it has
                                                                        |  your structure i.e  your PHOTO  and
                                                                        | Signature and you  will  represent  
CLIENT LOOKS INTO  INTERFACE  TO KNOW              |  the  bean .So without
                                               BEAN CLASS       | Passport  you are  not  allowed  to  
                                                                        |  board  the   Aircraft  and   with   out
                                                                        |  INTERFACE the  BEAN will not do anything
                                                                        |  for you .

                                                                        There will no implementation in an  
                                                                        INTERFACE .So INTERFACE is like having the
                                                                        PHOTO of the Class.
Question by:Kanti
LVL 24

Expert Comment

ID: 11985004
No I don't like this story. It's too synthetic and too long. Try this:

In a hospital: everybody in a long white coat and a stethoscope is taken for a doctor:  INTERFACE, the patients sight.
In fact it takes many years to study and to promote to be a surgeon: EXTEND, the administration's sight.

I am a hired programmer and sit beside the customers employees.
I'm an INTERFACE (to the team) they are only intereseted in my skill.
The person right to me is a CLASS: he/she is an employee and will be promoted on success (EXTENSION).

From sheer frustration, ;JOOP!


Accepted Solution

sbockelman earned 125 total points
ID: 11986548
First get the definitions as far as Java is concerned correct, then...if you want to make up a story go ahead, but...

1.  "extends" *should* mean simply that object B "is an" object A, but with additional abilities (that is it can handle all message sent to object A, plus some).  In Java and many OO languages, it can also mean, that object B "is like an" object A (that is it responds to all the same messages and *maybe* some additional ones, but its behavior when responding may vary.)  This is not the purist intention of class-inheritance and should be frowned upon.  So...

extends should mean "does everything the base class does exactly the same way and also does a few new things"

2. an interface is simply a description of the kinds of messages an object that implements that interface will respond to, with no necessarily implied notion of how such an object will respond, though it is usually customary that each iomplementing class will appear to respond similarly.

So, an anology for extends is something like:

Employee extends Person

A person will respond to getName() with its name.
An employee will repsond to getName() with its name.
An employee can also respond to getSalary(), while a "mere" Person cannot.

Both such objects also apparently implement the "Named" interface, responding to getName().
You might have an example like this:


All of these classes could implement the "Named" interface, but certainly, I would be surprised if there was any class hierarchy in which all of these classes could reasonably reside as extensions of one another.

However, given a collection of such things, each item in the collection could be cast to Named and respond to a call to getName().

I hope this rambling helps you better explain the differences.


Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
groupSumClump challenge 9 102
eclipse package explorer vs project explorer view 2 84
Error with Java/Cache JDBC Classpath 2 31
Image decoding from Camera 3 72
Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now