Introduction
An interface look like a class, but has no implementation, or say only one thing it contains are declaration of indexes, methods, events or properties, Interface in C# provide a way to achieve runtime ploymorphism ( means in which compiler identifies which polymorphism from to execute at run time but not at compile time is called as rum time polymorphism or late binding) .
A simple example that shows how to look like an interface in c#
class
Iexample
{
static
void
Main(string[]
args)
{
System.Console.WriteLine("Hello");
}
}
interface
demo
{
}
Output
Hello |
No problem, the above program will be run successfully, the above program consist a
class Iexample,
Main() is the entry point and an interface with the name as demo, at this time Interface
demo is empty, Now
I try to add some element in it.
What can we not do with interfaces, Lets see
1- Interface can not contain variable or variables
class
Iexample
{
static
void
Main(string[]
args)
{
System.Console.WriteLine("Hello");
}
}
interface
demo
{
int x;
}
When you
compile this program it will simply gives an error "Interface cannot
contain
fields".
fields".
2- Interface member can not have definition.
class
Iexample
{
static
void
Main(string[]
args)
{
System.Console.WriteLine("Hello");
Console.ReadKey();
}
}
interface
demo
{
void
abc()
{
System.Console.WriteLine("Interface
member can not have definition");
}
}
When you
compile this program it will simply gives an error "Interface can not have
definition".
definition".
3- when you create an interface and inherit that interface by the any
class, then you must implement that interface in that class, otherwise it will
gives a error.
class
Iexample:demo
{
static
void
Main(string[]
args)
{
System.Console.WriteLine("Hello");
Console.ReadKey();
}
}
interface
demo
{
void
abc();
}
When you
compile this program it will simply gives an
error "'consoleApplication1.Iexample' does not implement the interface member
consoleApplication1.demo.abc()'".
error "'consoleApplication1.Iexample' does not implement the interface member
consoleApplication1.demo.abc()'".
4- when you create an interface and inherit that interface by the any
class, then you must implement that interface in that class and that interface
method must be implemented with access modifier "public" otherwise it will
generate an error. Look a simple program.
class
Iexample:demo
{
static
void
Main(string[]
args)
{
System.Console.WriteLine("Hello");
Console.ReadKey();
}
void
abc()
{
Console.WriteLine("Implement
with public");
}
}
interface
demo
{
void
abc();
}
When you
compile this program it will simply gives an error "'consoleApplication1.Iexample'
does not
implement the interface member 'consoleApplication1.demo.abc()'" and also
"'consoleApplication1.Iexample' cannot not implement the interface member because it is not public."
Now we move out with right example of interface
Example of Interface (With method)
implement the interface member 'consoleApplication1.demo.abc()'" and also
"'consoleApplication1.Iexample' cannot not implement the interface member because it is not public."
Now we move out with right example of interface
Example of Interface (With method)
using
System;
namespace
ConsoleApplication11
{
class
Iexample:demo
{
static
void
Main(string[]
args)
{
demo
obj =
new
Iexample();
//decalare an interface instance
obj.abc();
System.Console.WriteLine("Bye....");
Console.ReadKey();
}
public
void
abc()
{
Console.WriteLine("Fun
with Interface");
}
}
interface
demo
{
void
abc();
}
}
Output
Fun with Interface Bye.... |
As we say above, Interface contains are declaration of indexes, methods, events or properties, Now have
play with method, Now Its time to play with properties.
Example of Interface
(With properties)
using
System;
namespace
ConsoleApplication11
{
class
Iexample:InterfaceImnpelment
{
static
void
Main(string[]
args)
{
InterfaceImnpelment
obj =
new
Iexample();
obj.Prop1 = 1;
obj.Prop2 =
"dothearts";
Console.WriteLine("Rank
of "
+ obj.Prop2 +
" is "
+ obj.Prop1);
Console.ReadKey();
}
}
class
InterfaceImnpelment
:
demo
{
private
int
_prop1;
private
string
_prop2;
public
int
Prop1
{
get
{
return
this._prop1;
}
set
{
this._prop1
=
value;
}
}
public
string
Prop2
{
get
{
return
this._prop2;
}
set
{
this._prop2
=
value;
}
}
}
interface
demo
{
int
Prop1
{
get;
set;
}
string
Prop2
{
get;
set;
}
}
}
Output
Rank of dotnethearts is 1 |
You can also implement more than one interface into a single, which have inherits its.
using
System;
namespace
ConsoleApplication11
{
class
Iexample
:
MultiInterfaces
{
static
void
Main(string[]
args)
{
MultiInterfaces
obj =
new
Iexample();
obj.fun1();
obj.fun2();
Console.ReadKey();
}
}
// implement more than one interface in a single class
class
MultiInterfaces
:
demo1,demo2
{
public
void
fun1()
{
Console.WriteLine("Hi!");
}
public
void
fun2()
{
Console.WriteLine("Bye!");
}
}
interface
demo1
{
void
fun1();
}
interface
demo2
{
void
fun2();
}
}
Advantage of interface
-
It provide the facility to reuse of software.
-
By the help of interface you can hide the implementation details of classes from each other.
-
Code reusability.
No comments:
Post a Comment