Which of the following languages does NOT support multiple inheritance through classes?
- A.C++
- B.Java
- C.Python
- D.Eiffel
Correct answer
Explanation
The correct answer is B, Java. Java deliberately leaves out multiple inheritance of classes to avoid the ambiguity that arises when two base classes supply a member of the same name, the problem often called the diamond problem, and it provides interfaces so that a class can still take behaviour from more than one source. Option A is wrong because C++ does support multiple inheritance, which is why it needs virtual base classes to settle the ambiguity. Option C is wrong because Python allows a class to list several base classes and resolves the order of lookup by a defined rule. Option D is wrong because Eiffel is another object-oriented language that permits multiple inheritance. The expected one-line answer in papers is that Java supports multiple inheritance of interfaces but not of classes.
Read the full article: Object-Oriented Programming: Classes, Objects and Pillars
Practice Questions
View allWhich of the following is regarded as the first object-oriented programming language?
- A.Simula 67
- B.FORTRAN
- C.COBOL
- D.BASIC
Show answer
Simula 67, designed by Ole-Johan Dahl and Kristen Nygaard, introduced the ideas of class, object and inheritance and is therefore treated as the first object-oriented language, from which C++ and Java later borrowed.
Read the full explanation →Which of the following is NOT counted among the four basic features of object-oriented programming?
- A.Abstraction
- B.Inheritance
- C.Recursion
- D.Polymorphism
Show answer
Recursion is a general programming technique in which a function calls itself, and it works equally well in procedural languages such as C, so it is not a feature of the object-oriented approach.
Read the full explanation →Wrapping up of data and the functions that operate on that data into a single unit is called
- A.Inheritance
- B.Encapsulation
- C.Overloading
- D.Compilation
Show answer
Encapsulation means binding the data members and the member functions that act on them inside one unit, the class, and keeping the data private so that it can be reached only through the methods provided; the standard illustration is a capsule holding the medicine inside it.
Read the full explanation →Showing only the essential features of an object to the user while hiding its internal details is known as
- A.Abstraction
- B.Encapsulation
- C.Inheritance
- D.Instantiation
Show answer
Abstraction presents only what the user needs, such as the accelerator and brake of a car, and keeps the internal working out of sight; in C++ it is obtained through abstract classes with pure virtual functions and in Java through interfaces and abstract classes.
Read the full explanation →Who developed the C++ programming language?
- A.Dennis Ritchie
- B.James Gosling
- C.Bjarne Stroustrup
- D.Guido van Rossum
Show answer
Bjarne Stroustrup developed the language at Bell Laboratories, starting it as C with Classes and giving it the name C++ in 1983; it adds classes, inheritance and polymorphism to C while keeping C procedural power, which is why it is called a hybrid language.
Read the full explanation →