Banner Ad

Showing posts with label OOPS interview Questions. Show all posts
Showing posts with label OOPS interview Questions. Show all posts

Sunday, March 16, 2014

Daily Interview Question #7: Implicit and Explicit Implementation of Interface

By Francis   Posted at   12:22 AM   OOPS interview Questions No comments

                                                   This is the most common interview question for experienced professionals.

Normally an interface can be implemented in a class in a normal way which is a implicit implementation. Sometime, we may have same method name in different interfaces. If this is the case, we need to do explicit implementation of the interface method. The main use of explicit implementation is to avoid the ambiguities between the class or method name. In order,  to do that the interface name put before that interface’s method.

 

Below example, shows the implicit and explicit implementation:

 

namespace ConsoleApplicationC
{
    // 2 interfaces with same method name
    interface IintegerAdd
    {
        void Add();
    }
    interface IfloatAdd
    {
        void Add();
        void Multiply();
    }


    // We implement Both interfaces
    class ArithmeticOperation : IintegerAdd, IfloatAdd
    {
        // Implicit  Implementation : There is no name collision so we can implement implicitly
        // NOTE : public modifier MUST here
        public void Multiply()
        {
            float a = 1.5f, b = 2.5f;
            Console.WriteLine("Float Multiplication is:" + a * b);
        }


        // Explicit Implementation :  Explicitly tell the compiler that we implement the interface IintegerAdd
        void IintegerAdd.Add()
        {
            int a = 10, b = 20;
            Console.WriteLine("Integer Addition Is:" + (a + b));
        }


        // Explicit Implementation :  Explicitly tell the compiler that we implement the interface IfloatAdd
        void IfloatAdd.Add()
        {
            float a = 1.5f, b = 2.5f;
            Console.WriteLine("Float Addition Is:" + (a + b));
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            ArithmeticOperation objA = new ArithmeticOperation();
            IintegerAdd iobj = (IintegerAdd)objA;
            iobj.Add();
            IfloatAdd fobj = (IfloatAdd)objA;
            fobj.Add();
            Console.ReadKey();
        }
    }
}


Output :


 


Integer Addition Is:30
Float Addition Is:4

Tuesday, January 28, 2014

Daily Interview Question #5 : What is the difference between “Method Overloading” and “Method Overriding”?

By Francis   Posted at   1:47 PM   OOPS interview Questions No comments

Method overloading

Method overriding

method overloading used to achieve “early binding” or “static binding”. method overriding used to achieve “late (dynamic) binding” or “runtime polymorphism”.
method overloading means, in a class method can be declared with same method name and with different parameters. method overriding means, a method defined in base class can be redefined in the derived classes.
method signature (method name + parameter) must be different in method overloading. method signature must be same in method override.

 

Sample Program:

using system;
using system.collections.generic;
using system.text;

namespace consoleapplicationc
{
//Base class
class baseclass
{
private int add(int a, int b)
{
return a + b;
}
// Overload the Above Method
private float add(float a, float b)
{
return a + b;
}
// virtual method - Indicates this will be override in Child class
public virtual string whereiam()
{
return "In Base Class";
}
}
// Derived Class
class derived : baseclass
{
// Base class Method Override here
public override string whereiam()
{
return "In Derived Class";
}
}
class program
{
static void main(string[] args)
{
// Just create base class reference
baseclass basereference;
// Create Base class Object
baseclass baseobj = new baseclass();
// create object for Derived class
derived derivedobj = new derived();
// Base class reference contains derived object
basereference = derivedobj;
// Now Derived class method called with base ref
string strvalue = basereference.whereiam();
console.writeline(strvalue);
// Now Base class ref contains base object
basereference = baseobj;
string strval = basereference.whereiam();
console.writeline(strval);
console.read();
}
}
}
Output:
in derived class
in base class

Monday, January 27, 2014

Daily Interview Questions #4: What is the difference between Abstract Method and Virtual Method?

By Francis   Posted at   1:29 PM   OOPS interview Questions No comments

Abstract Method:

Abstract method specified by “abstract” keyword.

An abstract method contains no definition. Derived class must implement the abstract methods.

Object cannot be created for abstract class. That is abstract class can not be instantiated.

Virtual Method:

Virtual method specified by “virtual” keyword.

Used to implement “Run-Time” polymorphism.

Derived classes not forced to implement the “Virtual” methods that is available in Base class.

The process of redefine the virtual method in a derived class called as “Method Overridding”.

Connect with Us