Interfaces and Inheritance in C#

CsharpProgrammingServer Side Programming


An interface is defined as a syntactical contract that all the classes inheriting the interface should follow. The interface defines the 'what' part of the syntactical contract and the deriving classes define the 'how' part of the syntactical contract.

Let us see an example of Interfaces in C#.


 Live Demo

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;

namespace InterfaceApplication {

   public interface ITransactions {
      // interface members
      void showTransaction();
      double getAmount();

   public class Transaction : ITransactions {
      private string tCode;
      private string date;
      private double amount;

      public Transaction() {
         tCode = " ";
         date = " ";
         amount = 0.0;

      public Transaction(string c, string d, double a) {
         tCode = c;
         date = d;
         amount = a;

      public double getAmount() {
         return amount;

      public void showTransaction() {
         Console.WriteLine("Transaction: {0}", tCode);
         Console.WriteLine("Date: {0}", date);
         Console.WriteLine("Amount: {0}", getAmount());

   class Tester {

      static void Main(string[] args) {
         Transaction t1 = new Transaction("001", "8/10/2012", 78900.00);
         Transaction t2 = new Transaction("002", "9/10/2012", 451900.00);



Transaction: 001
Date: 8/10/2012
Amount: 78900
Transaction: 002
Date: 9/10/2012
Amount: 451900


Inheritance allows us to define a class in terms of another class, which makes it easier to create and maintain an application. This also provides an opportunity to reuse the code functionality and speeds up implementation time.

The idea of inheritance implements the IS-A relationship. For example, mammal IS A animal, dog IS-A mammal hence dog IS-A animal as well, and so on.

The following is an example showing how to work with Inheritance in C#.


 Live Demo

using System;

namespace InheritanceApplication {
   class Shape {
      public void setWidth(int w) {
         width = w;

      public void setHeight(int h) {
         height = h;

      protected int width;
      protected int height;

   // Derived class
   class Rectangle: Shape {
      public int getArea() {
         return (width * height);

   class RectangleTester {
      static void Main(string[] args) {
         Rectangle Rect = new Rectangle();

         // Print the area of the object.
         Console.WriteLine("Total area: {0}", Rect.getArea());


Total area: 35
Published on 06-Aug-2018 09:13:03