What is Interface and Abstraction (in real time scenario)

Answers were Sorted based on User's Feedback



What is Interface and Abstraction (in real time scenario)..

Answer / pratap kumar jna

Interface:
1.Through interface we achive the multiple inheritance...i
meeans one class can implmemnts multiple interface.
2.Interface only contains abstract method means only
signature part..

LIKE int method1(int x,int y);

3.we achive actual run time polymorphism....

ABSTRACT :

Abstract class contain abstract and concrate mthod..

class can inhrit only one abstarct class..

Is This Answer Correct ?    10 Yes 4 No

What is Interface and Abstraction (in real time scenario)..

Answer / tams

1.Interface is a kind of plug in adapter by which different
classes can be benefited differently while abstarct class
comes in a role when idea of whole class is not much clear
intially like which method should be or not like a
practical planing.
2.so we can say abstract class is a kind of place holder
class and inherited by similar classes abstarct methods
must be declared/defined in the derived class while in
interface you can go for any methods

Is This Answer Correct ?    7 Yes 6 No

What is Interface and Abstraction (in real time scenario)..

Answer / amitabh

Better Explanation Here

http://www.codeproject.com/KB/cs/abstractsvsinterfaces.aspx

Is This Answer Correct ?    3 Yes 3 No

What is Interface and Abstraction (in real time scenario)..

Answer / satish

Interface:

–> If your child classes should all implement a certain group of methods/functionalities but each of the child classes is free to provide its own implementation then use interfaces.

For e.g. if you are implementing a class hierarchy for vehicles implement an interface called Vehicle which has properties like Colour MaxSpeed etc. and methods like Drive(). All child classes like Car Scooter AirPlane SolarCar etc. should derive from this base interface but provide a seperate implementation of the methods and properties exposed by Vehicle.

–> If you want your child classes to implement multiple unrelated functionalities in short multiple inheritance use interfaces.

For e.g. if you are implementing a class called SpaceShip that has to have functionalities from a Vehicle as well as that from a UFO then make both Vehicle and UFO as interfaces and then create a class SpaceShip that implements both Vehicle and UFO .

Abstract Classes

–> When you have a requirement where your base class should provide default implementation of certain methods whereas other methods should be open to being overridden by child classes use abstract classes.

For e.g. again take the example of the Vehicle class above. If we want all classes deriving from Vehicle to implement the Drive() method in a fixed way whereas the other methods can be overridden by child classes. In such a scenario we implement the Vehicle class as an abstract class with an implementation of Drive while leave the other methods / properties as abstract so they could be overridden by child classes.

–> The purpose of an abstract class is to provide a common definition of a base class that multiple derived classes can share.

For example a class library may define an abstract class that is used as a parameter to many of its functions and require programmers using that library to provide their own implementation of the class by creating a derived class.

Use an abstract class

When creating a class library which will be widely distributed or reused—especially to clients, use an abstract class in preference to an interface; because, it simplifies versioning. This is the practice used by the Microsoft team which developed the Base Class Library. ( COM was designed around interfaces.)
Use an abstract class to define a common base class for a family of types.
Use an abstract class to provide default behavior.
Subclass only a base class in a hierarchy to which the class logically belongs.


Use an interface

When creating a standalone project which can be changed at will, use an interface in preference to an abstract class; because, it offers more design flexibility.
Use interfaces to introduce polymorphic behavior without subclassing and to model multiple inheritance—allowing a specific type to support numerous behaviors.
Use an interface to design a polymorphic hierarchy for value types.
Use an interface when an immutable contract is really intended.
A well-designed interface defines a very specific range of functionality. Split up interfaces that contain unrelated functionality.

Is This Answer Correct ?    1 Yes 2 No

Post New Answer

More C Sharp Interview Questions

In languages without exception-handling facilities, we could send an error-handling procedure as a parameter to each procedure that can detect errors that must be handled. What disadvantages are there to this method?

0 Answers   HCL,


What is the difference between list and dictionary in c#?

0 Answers  


Is c# or c++ better for games?

0 Answers  


How can we set the class to be inherited, but prevent the method from being over-ridden?

0 Answers  


Trace the O/p for a program on inheritance and Polymorphism. 3 classes A,B,C A with two methods public virtual SomeMethodA public virtual SomemoreMethodA B:A overide SomeMethodA C:B new Method SomeMethodA override SomeMoreMethodA main method { b new instance of B b.SomeMethodA b.SomeMoreMethodA b1 new instance of C b1.SomeMethodA b1.SomeMoreMethodA }

2 Answers   Proteans,






What is difference between .net and c#?

0 Answers  


What is sqlcommand in c#?

0 Answers  


Is string reference type / value type?

56 Answers   Accenture, Microsoft, Siemens,


What is int parse in c#?

0 Answers  


How do you declare a variable in c#?

0 Answers  


Can you inherit from a sealed class?

0 Answers  


what is the index value of the first element in an array?

0 Answers  


Categories