Skip to main content

Abstraction in C# Explained

Abstraction in C#

 

Abstraction is a principle of object-oriented programming language (OOP) that is used to hide the implementation details and display only essential features of the object.

 

In Abstraction, by using access modifiers we can hide the required details of the object and expose only necessary methods and properties through the reference of an object.

 

Abstraction can be achieved using abstract classes in C#. C# allows you to create abstract classes that are used to provide a partial class implementation of an interface. Implementation is completed when a derived class inherits from it. Abstract classes contain abstract methods, which are implemented by the derived class. The derived classes have more specialized functionality.

The following are some of the key points −

  • You cannot create an instance of an abstract class
  • You cannot declare an abstract method outside an abstract class
  • When a class is declared sealed, it cannot be inherited, abstract classes cannot be declared sealed.

In real-time, the mobile phone is a perfect example of abstraction in c#. A mobile phone consists of many things such as processor, storage, motherboard, screen, camera, battery, speakers, etc. To use it, we just need to know how to operate the phone by switching it on, we don’t need to know how internally all the parts are working. Here, the phone is an object which is designed to expose only required features by hiding its implementation details.

 

In object-oriented programming, a class is the perfect example of abstraction. In C#, we can create a class with required methodsproperties and we can expose only  necessary methods and properties using access modifiers based on our requirements.

 

Following is the example of defining a class with required methodsproperties and exposing it by using access modifiers to achieve abstraction functionality.

 

     public class Phone

    {

        private string brand;

        private string model;

        public string Brand

        {

            get { return brand; }

            set { brand = value; }

        }

 

        public string Model

        {

            get { return model; }

            set { model = value; }

        }

 

        public void PhoneDetails()

        {

            Console.WriteLine("Brand: " + Brand);

            Console.WriteLine("Model: " + Model);

        }

 

        public void PhoneKeyboard()

        {

            Console.WriteLine("Type using Keyword");

        }

 

        private void MotherBoardInfo()

        {

            Console.WriteLine("MotheBoard Information");

        }

 

        private void InternalProcessor()

        {

            Console.WriteLine("Processor Information");

        }

 

    }

 

From the above code snippets, we defined a Phone class with required fields, properties and methods with the publicprivate access modifiers to achieve an abstraction functionality by hiding and exposing some of the methods and properties based on our requirements.

 

Here, the public modifier is used to allow defined fields, properties and methods to access outside of the class and the private modifier is used to hide or restrict access of required fields, properties and methods from the outside of class.

 

By creating an instance of Phone class we can access defined fields, properties, and methods. Following is the pictorial representation of creating an instance of a class and accessing fields, properties and methods.

 

 

Phone Class

 

If we observe the above image, we will notice that we are exposing only the necessary properties and methods outside of the class by using public and private access modifiers.

 

Abstraction Example in C#

The following code snippets form the example of implementing an abstraction functionality by allowing only a few properties and methods to access outside of the class.

 

using System;

using System.Text;

namespace CsharpnaijaTutorial

{

    public class Phone

    {

        private string brand;

        private string model;

        public string Brand

        {

            get { return brand; }

            set { brand = value; }

        }

 

        public string Model

        {

            get { return model; }

            set { model = value; }

        }

 

        public void PhoneDetails()

        {

            Console.WriteLine("Brand: " + Brand);

            Console.WriteLine("Model: " + Model);

        }

 

        public void PhoneTouchPad()

        {

            Console.WriteLine("Type using Keyword");

        }

 

        private void MotherBoardInfo()

        {

            Console.WriteLine("MotheBoard Information");

        }

 

        private void InternalProcessor()

        {

            Console.WriteLine("Processor Information");

        }

 

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            Phone phone = new Phone();

            phone.Brand = "Tecno";

            phone.Model = "Camon 11 Pro";

            phone.PhoneDetails();

            Console.WriteLine("\nPress Enter Key to Exit..");

            Console.ReadLine();

        }

    }

}

 

Based on the example above, we defined fields, properties and methods with public, private access modifiers to allow or disallow propertiesmethods access based on requirements.

 

Difference between Abstraction and Encapsulation

The differences between abstraction and encapsulation is that abstraction is used to hide unwanted data and shows only the required properties and methods while encapsulation is used to bind data members and member functions into a single unit to prevent outsiders to access it directly.

 

Thank you

 

References

1.     Tutlane

2.     TutorialPoint


Comments

Popular posts from this blog

Classes in C# Explained

C# Class Explained A class is nothing but an encapsulation of properties and methods that are used to represent a real-time entity, as explained by Guru99 . For instance, if you want to work with Guest’s data as in our previous DataDriven Web application . The properties of the Guest would be the Id, GuestName, Address, Phone number etc of the Guest. The methods would include the entry and modification of Guest data. All of these operations can be represented as a class in C# as shown below. using System; namespace CsharpnaijaClassTutorial {     public class Guest     {         public int Id { get ; set ; }         public string GuestName { get ; set ; }         public string Address { get ; set ; }         public string WhomToSee { get ; set ; }     ...

ASP.NET MVC Views

Views in ASP.NET MVC Application explained Find a related article By  Steve Smith  and  Luke Latham from Microsoft Corporation here In the Model-View-Controller (MVC) pattern, the  view  handles the application's data presentation and user interaction. A view is an HTML template with embedded  Razor markup . Razor markup is code that interacts with HTML markup to produce a webpage that's sent to the client. In ASP.NET MVC, views are  .cshtml  files that use the  C# programming language  in Razor markup. Usually, view files are grouped into folders named for each of the application's  controllers . The folders are stored in a  Views  folder at the root of the application as shown: The  Home  controller is represented by a  Home  folder inside the  Views  folder.  The  Home  folder contains the views for the  About ,  Contact , and  Index...

ASP.NET MVC Routing

ASP.NET MVC Routing ASP.NET MVC routing is a pattern matching system that is responsible for mapping incoming browser requests to specified MVC controller actions. When the ASP.NET MVC application launches then the application registers one or more patterns with the framework's route table to tell the routing engine what to do with any requests that matches those patterns. When the routing engine receives a request at runtime, it matches that request's URL against the URL patterns registered with it and gives the response according to a pattern match. Routing pattern is as follows A URL is requested from a browser, the URL is parsed (that is, break into controller and action), the parsed URL is compared to registered route pattern in the framework’s route table, if a route is found, its process and send response to the browser with the required response, otherwise, the HTTP 404 error is send to the browser. Route Properties ASP.NET MVC routes are res...