Skip to main content

Object Oriented Programming Concepts & Questions




1. What is Dynamic Binding? 
  • Binding means the link between procedure call and code to be executed.
  • Dynamic binding means link exists between procedure call and code to be executed at   run time when that procedure is called.
  • It is also known late binding. 
  • It is generally used with polymorphism and inheritance.
  • For example, compiler comes to know at runtime that which function of 'sum' will be called either with two arguments or with three arguments.


  2. What is the difference between Dynamic Binding in C++ and Java? 

There’s no virtual keyword in Java because all non-static methods always use dynamic binding. In Java, the programmer doesn’t have to decide whether or not to use dynamic binding. 

Virtual Function is a function in the base class, which is overridden in the derived class, and which tells the compiler to perform dynamic Binding on this function. The reason virtual exists in C++ is so you can leave it off for a slight increase in efficiency when you’re tuning for, but this often results in confusion and unpleasant surprises. 

The final keyword in Java provides some efficiency tuning – it tells the compiler that this method may not be overridden, and thus that it can be statically bound. In C++, we can do that by using a non-virtual call. 


3. What is one programming situation where multiple inheritance has significant advantage over interfaces?

Interface just carry "method signatures", whereas classes carry actual behavior. Multiple inheritance greatly helps to reduce code.


4. What are the design issues of OOP languages? 

- What non-objects are in the language?

- Are Subclasses Subtypes? If so, derived objects can be legally used wherever a parent object could be used.

- Type Checking and Polymorphism

- Single and Multiple Inheritance. Inherit from 1 (or more than 1) parent.

- Object Allocation and Deallocation. Are objects allocated from heap or stack?

- Dynamic and Static Binding. When are messages bound to methods, before or during run-time?

- Nested Classes. Can a class be nested inside another class?

- Initialization of Objects. Are objects initialized when created? Implicit or explicit?











Comments

Popular posts from this blog

DFS Performance Measurement

Completeness DFS is not complete, to convince yourself consider that our search start expanding the left subtree of the root for so long path (maybe infinite) when different choice near the root could lead to a solution, now suppose that the left subtree of the root has no solution, and it is unbounded, then the search will continue going deep infinitely, in this case , we say that DFS is not complete. Optimality  Consider the scenario that there is more than one goal node, and our search decided to first expand the left subtree of the root where there is a solution at a very deep level of this left subtree , in the same time the right subtree of the root has a solution near the root, here comes the non-optimality of DFS that it is not guaranteed that the first goal to find is the optimal one, so we conclude that DFS is not optimal. Time Complexity Consider a state space that is identical to that of BFS, with branching factor b, and we start the search fro...

Difference between a Singly LinkedList and Doubly LinkedList

Difference between abstract class and interface in OOP

Source: Amit Sethi In Interface: > All variables must be public static final. > No constructors. An interface can not be instantiated using the new operator.   > All methods must be public abstract .