Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between Generalization and inheritance with suitable example. OOAD

Studying about Generalization and inheritance making me confuse, both gives the same meaning as if something is being inherited..but cant figure out the actual difference.

like image 534
Pratik Lalan Avatar asked Dec 04 '16 16:12

Pratik Lalan


2 Answers

Generalization is the term that we use to denote abstraction of common properties into a base class in UML.

When we implement Generalization in a programming language, it is called Inheritance.

So, Generalization and Inheritance are same, the terminology just differs depending on the context where it is being used.

like image 178
RKS Avatar answered Sep 28 '22 02:09

RKS


The generalization/specialization relationship is implemented in object-oriented programming languages with inheritance.

Some Forms of Generalization

  1. Hierarchy: In the case of hierarchy, the commonalities are organized into a tree structured form. At the root of any subtree are found all the attributes and behavior common to all of the descendents of that root.

  2. Genericity: In this case, the commonality is expressed with the aid of a parameter. Various specializations are distinguished by what they provide for the parameter. For example, using genericity it is possible to represent the common properties of a "stack" through the generalization of a "stack of anything", where "anything" represents the parameter.

  3. Polymorphism: Polymorphism captures commonality in algorithms. Polymorphism allows the nested logic (or case statement) to be collapsed to a single case in which the different object types are treated in a uniform manner.

  4. Patterns: A pattern expresses a general solution (the key components and relationships) to a commonly occurring design problem. The attributes and behavior of the individual components are only partially defined to allow the pattern to be interpreted and applied to a wide range of situations.

like image 33
Sanjit Kumar Mishra Avatar answered Sep 28 '22 00:09

Sanjit Kumar Mishra