SlideShare uma empresa Scribd logo
1 de 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#

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

OOP C++
OOP C++OOP C++
OOP C++
 
Multithreading in java
Multithreading in javaMultithreading in java
Multithreading in java
 
Interfaces in java
Interfaces in javaInterfaces in java
Interfaces in java
 
Control structures in java
Control structures in javaControl structures in java
Control structures in java
 
Presentation on-exception-handling
Presentation on-exception-handlingPresentation on-exception-handling
Presentation on-exception-handling
 
Oops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in JavaOops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in Java
 
Inner classes in java
Inner classes in javaInner classes in java
Inner classes in java
 
Inheritance C#
Inheritance C#Inheritance C#
Inheritance C#
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programming
 
Inheritance In Java
Inheritance In JavaInheritance In Java
Inheritance In Java
 
oops concept in java | object oriented programming in java
oops concept in java | object oriented programming in javaoops concept in java | object oriented programming in java
oops concept in java | object oriented programming in java
 
Inheritance in c++
Inheritance in c++Inheritance in c++
Inheritance in c++
 
Interface in java ,multiple inheritance in java, interface implementation
Interface in java ,multiple inheritance in java, interface implementationInterface in java ,multiple inheritance in java, interface implementation
Interface in java ,multiple inheritance in java, interface implementation
 
java interface and packages
java interface and packagesjava interface and packages
java interface and packages
 
Inheritance In Java
Inheritance In JavaInheritance In Java
Inheritance In Java
 
Inheritance
InheritanceInheritance
Inheritance
 
Classes objects in java
Classes objects in javaClasses objects in java
Classes objects in java
 
Oops concept on c#
Oops concept on c#Oops concept on c#
Oops concept on c#
 
JAVA AWT
JAVA AWTJAVA AWT
JAVA AWT
 
Constructor in java
Constructor in javaConstructor in java
Constructor in java
 

Semelhante a 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
 

Semelhante a 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
 
Interface
InterfaceInterface
Interface
 
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
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

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