Data Abstraction Example in C#:-
To hide the internal functionality of the program is managed by data abstraction, It is used to provide security and accessibility in an application.
How to implement Data Abstraction:-
1) Using Access Specifier:-
1.1) Private:- We can not call outside of the class
1.2) Protected:- We can access from base class to derived class in the same project and cross-project
1.3) Internal:- We can access from all classes in the same project
1.4) Public:- We can access public data member and member function outside of the project.
1.5) Protected Internal:- Combine Features of Protected and Internal both.
To hide the internal functionality of the program is managed by data abstraction, It is used to provide security and accessibility in an application.
How to implement Data Abstraction:-
1) Using Access Specifier:-
1.1) Private:- We can not call outside of the class
1.2) Protected:- We can access from base class to derived class in the same project and cross-project
1.3) Internal:- We can access from all classes in the same project
1.4) Public:- We can access public data member and member function outside of the project.
1.5) Protected Internal:- Combine Features of Protected and Internal both.
Now I am providing a practical example of data abstraction using access-specifier:-
1) Create a class and define all method with all possible access specifier
class DataabstractionExample
{
private void fun1()
{
Console.WriteLine("Private");
}
internal void fun2()
{
Console.WriteLine("Internal");
}
protected internal void fun3()
{
Console.WriteLine("Protected Internal");
}
public void fun4()
{
Console.WriteLine("Publ ic");
}
protected void fun5()
{
Console.WriteLine("Protected");
}
}
2) Create another class in the same project to call these functions, only private and protected not call otherwise all functions will be accessable.
class DataabstractionExample2
{
static void Main()
{
DataabstractionExample obj = new DataabstractionExample();
obj.fun2();
obj.fun3();
obj.fun4();
Console.ReadKey();
}
}
3) Now creating another class and inherit from Dataabstractionclass then excluding private method all other methods will be called.
class DataabstractionExample3:DataabstractionExample
{
static void Main()
{
DataabstractionExample3 obj = new DataabstractionExample3();
obj.fun2();
obj.fun3();
obj.fun4();
obj.fun5();
Console.ReadKey();
}
}
4) Now creating another project and add the project reference of the first project to a second project using add reference options and call method then only public access specifier will be called.
When we add reference then right-click on references options ----> Add References--> Browse Project----> bin ---> debug--> Projectname.exe ---- Click on Add button.
Create the following class:-
using ConsoleApplication4;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
DataabstractionExample obj = new DataabstractionExample();
obj.fun4();
Console.ReadKey();
}
}
}
Now again inherit the class than public and protected both will be accessible when we create the object of the child class.
class Program:DataabstractionExample
{
static void Main(string[] args)
{
Program obj = new Program();
obj.fun4();
obj.fun3();
obj.fun5();
Console.ReadKey();
}
}
2) Using Abstract class:-
Discuss this concept on the abstract class topic
3) Using Interface:-
3) Using Interface:-
POST Answer of Questions and ASK to Doubt