The case against multiple inheritance in C++
The evolution of C++
The case for multiple inheritance in C++
The evolution of C++
A comparison of the object-oriented features of Ada 95 and Java
Proceedings of the conference on TRI-Ada '97
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java In A Nutshell, 5th Edition
Java In A Nutshell, 5th Edition
Requirements on the Target Programming Language for High-Integrity MDE
Ada-Europe '09 Proceedings of the 14th Ada-Europe International Conference on Reliable Software Technologies
Hi-index | 0.00 |
Ada 2005 and Java offer comparable Object-Oriented Programming ("OOP") support, but exhibit significant differences in both their general philosophies and their specific features. Each language allows the programmer to define class inheritance hierarchies (including a limited form of multiple inheritance through "interfaces") and to employ encapsulation, polymorphism, and dynamic binding. Whereas OOP forms the foundation of Java's semantic model, OOP in Ada is largely orthogonal to the rest of the language. In Java it is difficult to avoid using OOP; in Ada OOP is brought in only when explicitly indicated in the program. Java is a "pure" OO language in the style of Smalltalk, with implicit pointers and implementation-provided garbage collection. Ada is a methodology-neutral OO language in the manner of C++, with explicit pointers and program-specified storage reclamation. Java uses OOP to capture the functionality of exception handling, multi-threading, enumeration types, and other facilities that are not necessarily related to object orientation. Ada supplies specific features for such functionality, independent of its OO model. Java is oriented towards manipulating dynamic data structures. Ada offers more opportunities for optimization and run-time efficiency, and greater flexibility in the choice of programming styles.