Are the terms "Inheritance Relationship" and "Realization Relationship" used anywhere outside of UML?
In the context of UML, my understanding is this:
Inheritance Relationship: Behavior inheritance
Realization Relationship: Contract fulfillment
In Java when we talk about inheritance we typically think of anything with an 'IS-A' relationship, but in UML it is different. The Inheritance Relationship uses a solid line (open triangle) arrow to show where Behavior is coming from, and the Realization Relationship uses a dashed line (open triangle) arrow to show where contract comes from.
The Java equivalent to the Inheritance Relationship is extends and the Java equivalent for Realization Relationship is implements, though the boundaries can be a bit fuzzy (Abstract classes can define new contracts as well, and if a class implements an interface is has an IS-A relationship with the interface.
So based on that:
(a) Abstract class support to the inheritance relationship but not realization relationship.
This is true, Abstract classes use extends which is indicative of Inheritance.
(b) Interface supports to the realization relationship but not inheritance relationship.
This is true, interfaces use implements which is indicative of Realization
(c) Both Abstract class and Interface are supporting inheritance relationship.
If (b) is true then this must be false
(d) All above statements are correct.
If any of the above are false then this must be false