Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


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

Posted on 2004-09-05
Medium Priority
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 500 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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
Suggested Courses
Course of the Month14 days, 9 hours left to enroll

577 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