Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Multiple inheritance in the Oracle database

Zlatko SiroticJul 13 2016 — edited Jul 13 2016

Bertrand Meyer (author of OOPL Eiffel (1985), professor at ETH Zurich) in his book Object Oriented Software Construction (1997) writes (page 533):

"Multiple inheritance is indispensable when you want to state explicitly that a certain class possesses some properties beyond the basic abstraction that it represents.

Consider for example a mechanism that makes object structures persistent (storable on long-term storage)

... The discussion of inheritance methodology will define it as inheritance of the structural kind.

Without multiple inheritance, there would be no way to specify that a certain abstraction must possess two structural properties — numeric and storable, comparable and hashable.

Selecting one of them as the parent would be like having to choose between your father and your mother."

In the Java world it has long argued that multiple inheritance is a bad thing.

For example, this is from the (excellent) book Head First Java (2005, page 223):

"It's called "multiple inheritance" and it can be a Really Bad Thing.

That is, if it where possible to do in Java.

But it isn't, because multiple inheritance has a problem known as The Deadly Diamond of Death".

(Note: Bertrand Meyer solved this problem in Eiffel, at the beginning:

"A class that inherits from one or more others gets all its features, by default under their original names.

It may, however, change their names through rename clauses. This is required in the case of multiple inheritance if there are name clashes between inherited features.")

But finally, Java 8 introduced a certain form of multiple inheritance - default methods in the Java interfaces.

Maybe it is time to make multiple inheritance in the Oracle database?

To begin with something like in Java 8 - the ability to inherit the attributes of a single class, but the ability to inherit the (non-abstract) methods of multiple classes.

Comments

Processing

Post Details

Added on Jul 13 2016
13 comments
1,481 views