Monday, August 14, 2023

What is interface ?

Imagine you have a toy box with different kinds of toys in it - cars, dolls, and blocks. Each toy can move in its own way - cars can roll, dolls can be carried, and blocks can be stacked. Now, think of an interface in C# like a set of instructions for playing with these toys.

In this case, the interface could be named "IMovable" and it would have a single instruction: "Move." Each type of toy, whether it's a car, a doll, or a block, would follow this instruction in its own unique way. The interface doesn't tell the toy exactly how to move; it just ensures that each toy that uses the interface knows it needs to move.

So, the IMovable interface acts like a rulebook for the toys. It says, "Hey, if you want to play in this toy box, you have to know how to move!" And each toy that wants to follow this rule would have its own way of doing it.

or

Imagine you're in charge of a group of animals at a zoo. You have different types of animals like lions, giraffes, and elephants. Each of these animals can make a sound, but they do it in their own unique way. An interface in C# is like a "sound-making guideline" that each animal follows.


Example: Let's call this interface "ISoundMaker." It's a way to make sure every animal knows how to make a sound, even though each animal's sound is different.

Here's a simple program to show you what this could look like:


using System; // The ISoundMaker interface interface ISoundMaker { void MakeSound(); // This is the sound-making guideline } // Lion class that follows the ISoundMaker interface class Lion : ISoundMaker { public void MakeSound() { Console.WriteLine("Roar! I'm a lion!"); } } // Giraffe class that follows the ISoundMaker interface class Giraffe : ISoundMaker { public void MakeSound() { Console.WriteLine("Munch, munch! I'm a giraffe!"); } } // Elephant class that follows the ISoundMaker interface class Elephant : ISoundMaker { public void MakeSound() { Console.WriteLine("Trumpet! I'm an elephant!"); } } class Program { static void Main(string[] args) { Lion lion = new Lion(); Giraffe giraffe = new Giraffe(); Elephant elephant = new Elephant(); Console.WriteLine("The zoo animals make sounds:"); MakeAnimalSound(lion); MakeAnimalSound(giraffe); MakeAnimalSound(elephant); } static void MakeAnimalSound(ISoundMaker animal) { animal.MakeSound(); } }


In this program, the ISoundMaker interface ensures that each animal class (Lion, Giraffe, and Elephant) knows how to make a sound. The MakeAnimalSound function can take any object that follows the ISoundMaker interface and make it produce its own sound.

So, the interface acts like a common rule that all animals must follow, making sure they know how to make a sound even though the sounds themselves are different.