Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

What is the alternate of 'Inheritance' ?

Answer Posted / rakesh sahoo

Inheritance in JAVA programming is the process by which one class takes the property of another other class. i.e. the new classes, known as derived or super class, take over the attributes and behavior of the pre-existing classes, which are referred to as base classes or child class.
Inheritance is used to create a hierarchical-type code structure that tries to keep as much “common” code near the top of the hierarchy. In small, static systems, inheritance can be ok. But large inheritance chains can also lead to hard-to-maintain code. Read up on design patterns that favor composition over inheritance for more info when to use inheritance and when not to.
Delegation is simply passing a duty off to someone/something else.Delegation is alternative to inheritance. Delegation means that you use an object of another class as an instance variable, and forward messages to the instance. It is better than inheritance because it makes you to think about each message you forward, because the instance is of a known class, rather than a new class, and because it doesn’t force you to accept all the methods of the super class: you can provide only the methods that really make sense.Delegation can be viewed as a relationship between objects where one object forwards certain method calls to another object, called its delegate. Delegation can also a powerful design/reuse technique. The primary advantage of delegation is run-time flexibility – the delegate can easily be changed at run-time. But unlike inheritance, delegation is not directly supported by most popular object-oriented languages, and it doesn’t facilitate dynamic polymorphism.
Here is a simple example:
class ABC {
         void methodHello()
    {
    System.out.println("hello");
 
    }
 
    void methodBye()
    {
     System.out.println("bye"); }
    }
 
class XYZ {
         ABC obj = new ABC();
 
     void methodHello()
        {
         obj.methodHello();
        }
 
        void methodBye()
        {
         obj.methodBye();
        }
 
}
 
public class VinayMain {
         public static void main(String[] args) {
             XYZ obj = new XYZ();
             obj.methodHello();
             obj.methodBye();
         }
}
Sometimes, the choice between delegation and inheritance is driven by external factors such as programming language support for multiple inheritance or design constraints requiring polymorphism. Consider threads in Java. You can associate a class with a thread in one of two ways: either by extending (inheriting) directly from class Thread, or by implementing the Runnable interface and then delegating to a Thread object. Often the approach taken is based on the restriction in Java that a class can only extend one class (i.e., Java does not support multiple inheritance). If the class you want to associate with a thread already extends some other class in the design, then you would have to use delegation; otherwise, extending class Thread would usually be the simpler approach

Is This Answer Correct ?    1 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Why is boolean important?

1003


How do you format in java?

937


What is queue in java?

1065


How big is a pointer?

981


What is runtime polymorphism or dynamic method dispatch?

969


Write a regular expression to validate a password. A password must start with an alphabet and followed by alphanumeric characters; its length must be in between 8 to 20.

971


What do you mean by local class?

952


How do you sort words in java?

878


What is fail fast in java?

1058


What is "this" keyword in java? Explain

1048


why we use merge option in hybernate pls give a ex snippet

1927


What is implicit object in java?

1022


what is ststic with example

2002


What does yield method of the thread class do?

972


What are the rules for naming an array?

989