I have been associated with JAVA and ABAP worlds from the start. Object Orientation in programming has gained more and more importance. OO ABAP and JAVA are object oriented programming styles. ABAP/4 was extended to support OO concepts. Object oriented concepts of Java, C++, etc… are adopted in OO ABAP and some features which are specific to ABAP; it means there are some features in ABAP which are not supported in JAVA and vice versa. One more important aspect to consider is ABAP language is meant for business software development.
Deadly Diamond of Death – Both OO ABAP and JAVA allow only one class extending/inheriting option.
Inheritance, Polymorphism, encapsulation,
Overloading is not supported in OO ABAP
Constructor concept is handled very differently in OO ABAP
Classes/Interface in OO ABAP along with attributes and functions have events. Event concept is important feature of OO ABAP in which the one object raises event; based on the requirement; client objects can subscribe to it.
Biggest difference as per my knowledge – Collections(ArrayList, Vector, LinkedList, Queue, Hashtable, TreeMap, LinkedHashMap, LinkedHashSet, TreeSet) play important role in Java; no equivalent in OO ABAP. Internal tables and work area can be used whenever we need collection i.e. to process basket of data.
I know above listed is points are few; will try to put some more points as and when I come across them.