- 17.9K All Categories
- 3.4K Industry Applications
- 3.4K Intelligent Advisor
- 75 Insurance
- 537.7K On-Premises Infrastructure
- 138.7K Analytics Software
- 38.6K Application Development Software
- 6.1K Cloud Platform
- 109.6K Database Software
- 17.6K Enterprise Manager
- 8.8K Hardware
- 71.3K Infrastructure Software
- 105.4K Integration
- 41.6K Security Software
Multiple inheritance in the Oracle database
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.