Language Requirements for ADTs
• A syntactic unit in which to encapsulate the type definition
• A method of making type names and subprogram headers visible to clients, while hiding
actual definitions
• Some primitive operations must be built into the language processor
• Ada provides packages that simulate ADTs
• C++ data abstraction is provided by classes
• Java’s data abstraction is similar to C++
• Ada, C++, Java 5.0, and C# 2005 support parameterized ADTs
• C++, C#, Java, Ada, and Ruby provide naming encapsulations
So, A, B, C are true.
Hence answer is D