Generalization and Specialization both are example of Inheritance
Generalization
and Specialization both are example of Inheritance both showing IS-A
relationship.
When super-classes
shared their features with different sub-classes is known as specialization.
It is top-down approach in Inheritance
When more
than one sub classes extract their common features and combine them in a
one supper class is known as generalization. It is bottom up
approach in inheritance
Specialization IS-A relationship
Example:
Suppose we
have a supper class “Person” it has two sub classes “Student” and
“Teacher”. Now person having some common attributes like gender,
address, age, etc. In general Student is a Person,Student also
having the same common attribute of a Person and also some own personal
attributes. So, that’s why we say Student IS-A Person or Students
extends Person or Students Inherit the Person or Student become a
child (sub class) of parent (supper class) Person. The same thing with
teacher. Now this is showing Specialization, because a Super class Person
shared their properties with Sub Classes Student and Teacher.
Now take
same thing but in reverse order like say sub Classes Student and Teacher
both having some common attributes, now we extract that common features from
both sub classes and combine them to make a Super Class Person this is
known as Generalization.
Specialization
Specialization
Association HAS-A Relationship
Generally,
association is a ‘HAS-A’ relation. In simple word when one object is
related to other object to use functionality and services of that object. So,
these types of relation between two objects is known as association.
Association
provides us one to one, one to many or many to one and many
to many relationships between objects. Association has two special forms
o
Aggregation
o
Composition
Specialization
Aggregation
Aggregation
is a special form of association and it is week relation of association. when
an object ‘HAS-A’ another object, but both are independent to each other
is known as an Aggregation.
For example
If we have
two classes one is Studentand second is School, now if School
is close, then Student still exist. It may change the school. Same way
if Student leave the School, then may be another Student
take the place of that student. So notice that they both are independent of
each other this is known as Aggregation.
Composition strong relation
Composition
is a special form of association and it is strong relation of association. when
an object ‘HAS-A’ another object and any one object depend upon other
object this is known as composition.
For Example:
If we have
three Classes which are Human, Hand and Leg. Now in general Human
Has-A hand and Human Has-A Leg. If a human has no Hand or has
no Leg than that Human will be alive, but Human itself
destroy than its Hand and Leg are also destroy because these
parts depend upon Human. So notice that Human is independent
Class and hand and Leg are dependent Classes. So, this type of
association is known as Composition.
Example of Aggregation
We have two
classes Employee and Address, Employee HAS-A Address.
Specialization
Address Class:
In address
class I create three String objects city, state and country. Generally, every
employee has an address so that’s why I create an address class with it
constructor to initialize the value. In constructor I use this keyword,
but be confused with this keyword. I will explain it in This Keyword
section, right now just understand that This keyword refers the current
instance of the class.
Employee Class