SlideShare une entreprise Scribd logo
1  sur  17
WHAT ARE INTERFACES??

Interfaces are reference types. It is basically a
     class with the following differences:

 1. All members of an interface are explicitly
           PUBLIC and ABSTRACT.

     2. Interface cant contain CONSTANT
 fields, CONSTRUCTORS and DESTRUCTORS.

  3. Its members can’t be declared STATIC.

   4. All the methods are ABSTRACT, hence
   don’t include any implementation code.

5. An Interface can inherit multiple Interfaces.
A                  A              B




   B

                              C


   C
                      THIS IS NOT POSSIBLE
THIS IS POSSIBLE IN
                      IN C#
C#
As evident from the previous diagram, in C#, a class cannot have more than one SUPERCLASS.
For example, a definition like:

Class A: B,C
{
            .........
            .........
}
is not permitted in C#.


However, the designers of the language couldn’t overlook the importance of the concept of
multiple inheritance.
A large number of real life situations require the use of multiple inheritance whereby we inherit
the properties of more than one distinct classes.
For this reason, C# provides the concept of interfaces. Although a class can’t inherit multiple
classes, it can IMPLEMENT multiple interfaces.



                                                   .
DEFINING AN INTERFACE

An interface can contain one or multiple METHODS, POPERTIES, INDEXERS and EVENTS.
But, these are NOT implemented in the interface itself.
They are defined in the class that implements the interface.

Syntax for defining an interface:

interface interfacename
{
  member declarations..
}

interface is a KEYWORD.
interfacename is a valid C# identifier.

Example:

interface Show
{
  void Display();                          // method within interface
  int Aproperty
   {
     get;                                 // property within interface
   }
 event someEvent Changed;
void Display();                           // event within interface
}
EXTENDING AN INTERFACE

Interfaces can be extended like classes. One interface can be sub interfaced
from other interfaces.

Example:

interface addition
{
  int add(int x, int y);
}

interface Compute: addition
{
  int sub(int x, int y);
}

the above code will place both the methods, add() and sub() in the interface
Compute. Any class implementing Compute will be able to implement both
these methods.

INTERFACES CAN EXTEND ONLY INTERFACES, THEY CAN’T EXTEND CLASSES.
This would violate the rule that interfaces can have only abstract members.
IMPLEMENTING INTERFACES

An Interface can be implemented as follows:

class classname: interfacename
{
  body of classname
}

A class can derive from a single class and implement as many interfaces
required:

class classname: superclass, interface1,interface 2,…
{
 body of class name
}

eg:
class A: B,I1,I2,..
 {
…….
……..
}
using System;
interface Addition
{
  int Add();
}
interface Multiplication
{
int Mul();
}
class Compute:Addition,Multiplication
{
  int x,y;
  public Compute(int x, int y)
  {
    this.x=x;
    this.y=y;
   }
public int Add()                        //implement Add()
{
  return(x+y);
}
public int Mul()                        //implement Mul()
{
return(x*y);
}}
Class interfaceTest
{
  public static void Main()
  {
     Compute com=new Compute(10,20);               //Casting
     Addition add=(Addition)com;
     Console.WriteLine(“sum is:”+add.Add());
     Multiplication mul=(Multiplication)com;     //Casting
     Console.WriteLine(“product is:”+mul.Mul());
   }
}



                           OUTPUT

sum is: 30
product is: 200
MULTILPLE IMPEMENTATION OF AN
INTERFACE

Just as a class can implement
multiple interfaces, one single
interface can be implemented by
multiple classes. We demonstrate this
by the following example;

using System;
interface Area;
{
  double Compute(double x)
}
class Square:Area
{
  public double Compute(double x)
  {
    return(x*x);
  }
class Circle:Area
  {
    public double Compute(double x)
     {
       return(Math.PI*x*x);
     }
}
Class InterfaceTest
{
  public static void Main()
  {
    Square sqr=new Square();
    Circle cir=new Circle();
    Area area=(Area)sqr;
    Console.WriteLine(“area of square is:”+area.Compute(10.0));
    area=(Area)cir;
    Console.WriteLine(“area of circle is:”+area.Compute(10.0));
  }
}


                                    OUTPUT
area of square is: 100
area of circle is: 314.159265
INTERFACES AND INHERITANCE:

We may encounter situations where the base class of a derived class
implements an interface. In such situations, when an object of the derived
class is converted to the interface type, the inheritance hierarchy is
searched until it finds a class that has directly implemented the interface.
We consider the following program:


using system;
interface Display
{
  void Print();
}
class B:Display       //implements Display
{
  public void Print()
  {
    Console.Writeline(“base display”);
  }
}
class D:B           //inherits B class
{
 public new void Print()
  {
    Console.Writeline(“Derived display”);
  }
}
class InterfaceTest3
{
 public static void Main()
 {
   D d=new D();
   d.Print();
   Display dis=(Display)d;
   dis.Print();
  }
}

OUTPUT:
Derived display
base display

The statement dis.Print() calls the method in the base class B but not in the derived
class itself.
This is because the derived class doesn’t implement the interface.
EXPLICIT INTERFACE IMPLEMENTATION

The main reason why c# doesn’t support multiple
inheritance is the problem of NAME COLLISION.

But the problem still persists in C# when we are
implementing multiple interfaces.

For example:
let us consider the following scenario, there are two
interfaces and an implementing class as follows:

interface i1
{
  void show();
}
interface i2
{
  void show();
}
class classone: i1,i2
{
  public void display()
  {
    …
    …
  }
The problem is that whether the class classone implements
i1.show() or i2.show()??
This is ambiguous and the compiler will report an error.
To overcome this problem we have something called EXPLICIT
INTERFCAE IMPLEMENTATION. This allows us to specify the name
of the interface we want to implement.

We take the following program as an example:

using system;
intereface i1
{
  void show();
}
interface i2
{
  void show();
}
Class classone: i1,i2
{
  void i1.show()
   {
     Console.Writeline(“ implementing i1”);
   }
void i2.show()
 {
  Console.Writeline(“ implementing i2”);
 }
}
class interfaceImplement
 {
   public static void Main()
    {
      classone c1=new classone();
      i1 x=(i1)c1;
      x.show();
     i2 y=(i2)c1;
     y.show();
   }
}
                                  OUTPUT: implementing i1
                                                    implementing i2
Interfaces c#

Contenu connexe

Tendances

Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Language
dheva B
 

Tendances (20)

Abstract class in c++
Abstract class in c++Abstract class in c++
Abstract class in c++
 
C# Access modifiers
C# Access modifiersC# Access modifiers
C# Access modifiers
 
Java- Nested Classes
Java- Nested ClassesJava- Nested Classes
Java- Nested Classes
 
Java abstract class & abstract methods
Java abstract class & abstract methodsJava abstract class & abstract methods
Java abstract class & abstract methods
 
Interface
InterfaceInterface
Interface
 
C# Inheritance
C# InheritanceC# Inheritance
C# Inheritance
 
Pure virtual function and abstract class
Pure virtual function and abstract classPure virtual function and abstract class
Pure virtual function and abstract class
 
Polymorphism in java
Polymorphism in javaPolymorphism in java
Polymorphism in java
 
Class and object in C++
Class and object in C++Class and object in C++
Class and object in C++
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handling
 
Polymorphism in java, method overloading and method overriding
Polymorphism in java,  method overloading and method overridingPolymorphism in java,  method overloading and method overriding
Polymorphism in java, method overloading and method overriding
 
C++ classes tutorials
C++ classes tutorialsC++ classes tutorials
C++ classes tutorials
 
Abstract class
Abstract classAbstract class
Abstract class
 
11 constructors in derived classes
11 constructors in derived classes11 constructors in derived classes
11 constructors in derived classes
 
Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Language
 
Python-Encapsulation.pptx
Python-Encapsulation.pptxPython-Encapsulation.pptx
Python-Encapsulation.pptx
 
Inheritance
InheritanceInheritance
Inheritance
 
Abstract class and Interface
Abstract class and InterfaceAbstract class and Interface
Abstract class and Interface
 
Interface in java
Interface in javaInterface in java
Interface in java
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 

Similaire à Interfaces c#

Indicate whether each of the following statements is true or false.docx
Indicate whether each of the following statements is true or false.docxIndicate whether each of the following statements is true or false.docx
Indicate whether each of the following statements is true or false.docx
migdalialyle
 
Abstract & Interface
Abstract & InterfaceAbstract & Interface
Abstract & Interface
Linh Lê
 
Chapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-classChapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-class
Deepak Singh
 

Similaire à Interfaces c# (20)

Ppt of c++ vs c#
Ppt of c++ vs c#Ppt of c++ vs c#
Ppt of c++ vs c#
 
Session 6_Java Interfaces_Details_Programs.pdf
Session 6_Java Interfaces_Details_Programs.pdfSession 6_Java Interfaces_Details_Programs.pdf
Session 6_Java Interfaces_Details_Programs.pdf
 
Session 6_Interfaces in va examples .ppt
Session 6_Interfaces in va examples .pptSession 6_Interfaces in va examples .ppt
Session 6_Interfaces in va examples .ppt
 
Session 6_Interfaces in va examples .ppt
Session 6_Interfaces in va examples .pptSession 6_Interfaces in va examples .ppt
Session 6_Interfaces in va examples .ppt
 
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
 
Visula C# Programming Lecture 8
Visula C# Programming Lecture 8Visula C# Programming Lecture 8
Visula C# Programming Lecture 8
 
Indicate whether each of the following statements is true or false.docx
Indicate whether each of the following statements is true or false.docxIndicate whether each of the following statements is true or false.docx
Indicate whether each of the following statements is true or false.docx
 
Java interface
Java interfaceJava interface
Java interface
 
21UCAC31 Java Programming.pdf(MTNC)(BCA)
21UCAC31 Java Programming.pdf(MTNC)(BCA)21UCAC31 Java Programming.pdf(MTNC)(BCA)
21UCAC31 Java Programming.pdf(MTNC)(BCA)
 
OOPS With CSharp - Jinal Desai .NET
OOPS With CSharp - Jinal Desai .NETOOPS With CSharp - Jinal Desai .NET
OOPS With CSharp - Jinal Desai .NET
 
Introduction to object oriented programming concepts
Introduction to object oriented programming conceptsIntroduction to object oriented programming concepts
Introduction to object oriented programming concepts
 
chapter-10-inheritance.pdf
chapter-10-inheritance.pdfchapter-10-inheritance.pdf
chapter-10-inheritance.pdf
 
Interface
InterfaceInterface
Interface
 
OOPS IN C++
OOPS IN C++OOPS IN C++
OOPS IN C++
 
Exception handling and packages.pdf
Exception handling and packages.pdfException handling and packages.pdf
Exception handling and packages.pdf
 
Abstract & Interface
Abstract & InterfaceAbstract & Interface
Abstract & Interface
 
Inheritance
InheritanceInheritance
Inheritance
 
Chapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-classChapter27 polymorphism-virtual-function-abstract-class
Chapter27 polymorphism-virtual-function-abstract-class
 
Xamarin: Namespace and Classes
Xamarin: Namespace and ClassesXamarin: Namespace and Classes
Xamarin: Namespace and Classes
 
Example for Abstract Class and Interface.pdf
Example for Abstract Class and Interface.pdfExample for Abstract Class and Interface.pdf
Example for Abstract Class and Interface.pdf
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Interfaces c#

  • 1.
  • 2. WHAT ARE INTERFACES?? Interfaces are reference types. It is basically a class with the following differences: 1. All members of an interface are explicitly PUBLIC and ABSTRACT. 2. Interface cant contain CONSTANT fields, CONSTRUCTORS and DESTRUCTORS. 3. Its members can’t be declared STATIC. 4. All the methods are ABSTRACT, hence don’t include any implementation code. 5. An Interface can inherit multiple Interfaces.
  • 3. A A B B C C THIS IS NOT POSSIBLE THIS IS POSSIBLE IN IN C# C#
  • 4. As evident from the previous diagram, in C#, a class cannot have more than one SUPERCLASS. For example, a definition like: Class A: B,C { ......... ......... } is not permitted in C#. However, the designers of the language couldn’t overlook the importance of the concept of multiple inheritance. A large number of real life situations require the use of multiple inheritance whereby we inherit the properties of more than one distinct classes. For this reason, C# provides the concept of interfaces. Although a class can’t inherit multiple classes, it can IMPLEMENT multiple interfaces. .
  • 5. DEFINING AN INTERFACE An interface can contain one or multiple METHODS, POPERTIES, INDEXERS and EVENTS. But, these are NOT implemented in the interface itself. They are defined in the class that implements the interface. Syntax for defining an interface: interface interfacename { member declarations.. } interface is a KEYWORD. interfacename is a valid C# identifier. Example: interface Show { void Display(); // method within interface int Aproperty { get; // property within interface } event someEvent Changed; void Display(); // event within interface }
  • 6. EXTENDING AN INTERFACE Interfaces can be extended like classes. One interface can be sub interfaced from other interfaces. Example: interface addition { int add(int x, int y); } interface Compute: addition { int sub(int x, int y); } the above code will place both the methods, add() and sub() in the interface Compute. Any class implementing Compute will be able to implement both these methods. INTERFACES CAN EXTEND ONLY INTERFACES, THEY CAN’T EXTEND CLASSES. This would violate the rule that interfaces can have only abstract members.
  • 7. IMPLEMENTING INTERFACES An Interface can be implemented as follows: class classname: interfacename { body of classname } A class can derive from a single class and implement as many interfaces required: class classname: superclass, interface1,interface 2,… { body of class name } eg: class A: B,I1,I2,.. { ……. …….. }
  • 8. using System; interface Addition { int Add(); } interface Multiplication { int Mul(); } class Compute:Addition,Multiplication { int x,y; public Compute(int x, int y) { this.x=x; this.y=y; } public int Add() //implement Add() { return(x+y); } public int Mul() //implement Mul() { return(x*y); }}
  • 9. Class interfaceTest { public static void Main() { Compute com=new Compute(10,20); //Casting Addition add=(Addition)com; Console.WriteLine(“sum is:”+add.Add()); Multiplication mul=(Multiplication)com; //Casting Console.WriteLine(“product is:”+mul.Mul()); } } OUTPUT sum is: 30 product is: 200
  • 10. MULTILPLE IMPEMENTATION OF AN INTERFACE Just as a class can implement multiple interfaces, one single interface can be implemented by multiple classes. We demonstrate this by the following example; using System; interface Area; { double Compute(double x) } class Square:Area { public double Compute(double x) { return(x*x); } class Circle:Area { public double Compute(double x) { return(Math.PI*x*x); } }
  • 11. Class InterfaceTest { public static void Main() { Square sqr=new Square(); Circle cir=new Circle(); Area area=(Area)sqr; Console.WriteLine(“area of square is:”+area.Compute(10.0)); area=(Area)cir; Console.WriteLine(“area of circle is:”+area.Compute(10.0)); } } OUTPUT area of square is: 100 area of circle is: 314.159265
  • 12. INTERFACES AND INHERITANCE: We may encounter situations where the base class of a derived class implements an interface. In such situations, when an object of the derived class is converted to the interface type, the inheritance hierarchy is searched until it finds a class that has directly implemented the interface. We consider the following program: using system; interface Display { void Print(); } class B:Display //implements Display { public void Print() { Console.Writeline(“base display”); } }
  • 13. class D:B //inherits B class { public new void Print() { Console.Writeline(“Derived display”); } } class InterfaceTest3 { public static void Main() { D d=new D(); d.Print(); Display dis=(Display)d; dis.Print(); } } OUTPUT: Derived display base display The statement dis.Print() calls the method in the base class B but not in the derived class itself. This is because the derived class doesn’t implement the interface.
  • 14. EXPLICIT INTERFACE IMPLEMENTATION The main reason why c# doesn’t support multiple inheritance is the problem of NAME COLLISION. But the problem still persists in C# when we are implementing multiple interfaces. For example: let us consider the following scenario, there are two interfaces and an implementing class as follows: interface i1 { void show(); } interface i2 { void show(); } class classone: i1,i2 { public void display() { … … }
  • 15. The problem is that whether the class classone implements i1.show() or i2.show()?? This is ambiguous and the compiler will report an error. To overcome this problem we have something called EXPLICIT INTERFCAE IMPLEMENTATION. This allows us to specify the name of the interface we want to implement. We take the following program as an example: using system; intereface i1 { void show(); } interface i2 { void show(); }
  • 16. Class classone: i1,i2 { void i1.show() { Console.Writeline(“ implementing i1”); } void i2.show() { Console.Writeline(“ implementing i2”); } } class interfaceImplement { public static void Main() { classone c1=new classone(); i1 x=(i1)c1; x.show(); i2 y=(i2)c1; y.show(); } } OUTPUT: implementing i1 implementing i2