File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes Composition and Inheritance Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Head First Android this week in the Android forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Composition and Inheritance" Watch "Composition and Inheritance" New topic

Composition and Inheritance

Mathews P Srampikal
Ranch Hand

Joined: Nov 26, 2002
Posts: 211
What is the difference between Composition and Inheritance in java.

Ernest Friedman-Hill
author and iconoclast

Joined: Jul 08, 2003
Posts: 24189

In Java, or in any language, inheritance is, well, inheritance -- as expressed by the "extends" keyword; while composition refers to the inclusion of one object inside another as a member.
In this example, Bar gets access to Foo's capabilites via inheritance:

While here it gets them via composition:

The general, oversimplified rule is to use composition when you can, inheritance when you must.

[Jess in Action][AskingGoodQuestions]
It is sorta covered in the JavaRanch Style Guide.
subject: Composition and Inheritance
It's not a secret anymore!