Visual Programming
Visual Programming
Object-Oriented Programming (OOP) in C#
Fundamental Programming Paradigm
By:
Zohair Ahmed
www.youtube.com/@zohairahmed007
www.youtube.com/@zohairahmed007 www.youtube.com/@zohairahmed007
Subscribe
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007
www.begindiscovery.com
www.begindiscovery.com www.begindiscovery.com
Object-Oriented Programming (OOP)
• Object-Oriented Programming (OOP) in C# is a fundamental programming paradigm that
structures code into "objects," which represent real-world entities.
• OOP in C# involves four core principles: Encapsulation, Abstraction, Inheritance, and
Polymorphism.
www.youtube.com/@zohairahmed007
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com
Encapsulation public class Person
{
// Private fields
• Encapsulation is the practice of bundling private string name;
private int age;
the data (fields) and methods that
// Public property with encapsulated field
operate on the data within one unit public string Name
{
(class) and restricting access to some of get { return name; }
set { name = value; }
the object's components. }
• This is typically achieved using access public int Age
{
modifiers like private, public, protected, get { return age; }
set
etc. {
if (value > 0) // Validation
age = value;
}
}
}
www.youtube.com/@zohairahmed007
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com
Abstraction
public abstract class Animal
• Abstraction is the concept of hiding {
complex implementation details and // Abstract method with no implementation
exposing only the essential features of an
public abstract void Speak();
}
object.
• In C#, abstraction is achieved through public class Dog : Animal
{
abstract classes and interfaces.
public override void Speak()
{
Console.WriteLine("Woof!");
}
}
www.youtube.com/@zohairahmed007
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com
Inheritance
public class Vehicle
• Inheritance allows a class to inherit the {
properties and methods of another class. public string Brand = "Ford";
public void Honk()
• In C#, inheritance is achieved using a :
{
symbol. Console.WriteLine("Beep beep!");
}
}
// Car inherits from Vehicle
public class Car : Vehicle
{
public string ModelName = "Mustang";
}
www.youtube.com/@zohairahmed007
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com
Type of Inheritance
• Single Inheritance
‒ Single inheritance occurs when a class inherits from one and only one base class. This is the
most common type of inheritance.
• Multilevel Inheritance
‒ In multilevel inheritance, a class is derived from a class that is also derived from another class. This
creates a hierarchy of classes.
• Hierarchical Inheritance
‒ Hierarchical inheritance occurs when multiple classes inherit from a single base class.
• Multiple Inheritance (Through Interfaces)
‒ C# does not support multiple inheritance directly (a class cannot inherit from more than one class), but
it can be achieved using interfaces. A class can implement multiple interfaces, thus achieving a form
of multiple inheritance.
www.youtube.com/@zohairahmed007
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com
Example: Type of Inheritance
//1. Single Inheritance //3. Hierarchical Inheritance
public class Parent
public class Parent {
{ public void Display() { Console.WriteLine("Parent Class"); }
public void Display() { Console.WriteLine("Parent Class"); } }
} public class Child1 : Parent
{
public class Child : Parent public void Show() { Console.WriteLine("Child1 Class"); }
{ }
public void Show() { Console.WriteLine("Child Class"); } public class Child2 : Parent
} {
public void Print() { Console.WriteLine("Child2 Class"); }
//2. Multilevel Inheritance }
public class Grandparent //4. Multiple Inheritance (Through Interfaces)
{ public interface IA
public void Display() { Console.WriteLine("Grandparent Class"); } {
} void MethodA();
}
public class Parent : Grandparent public interface IB
{ {
public void Show() { Console.WriteLine("Parent Class"); } void MethodB();
} }
public class Child : IA, IB
public class Child : Parent {
{ public void MethodA() { Console.WriteLine("Method from Interface IA"); }
public void Print() { Console.WriteLine("Child Class"); } public void MethodB() { Console.WriteLine("Method from Interface IB"); }
} }
www.youtube.com/@zohairahmed007
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com
Polymorphism Method Overloading:
public class MathOperations
• Polymorphism allows objects to be {
public int Add(int a, int b) { return a + b; }
treated as instances of their parent class. public double Add(double a, double b) { return a + b; }
}
• C# supports two types of polymorphism:
Method Overriding
‒ Compile-time (method overloading) public class Animal
‒ Runtime (method overriding). {
public virtual void Speak() { Console.WriteLine("Animal
sound"); }
}
public class Cat : Animal
{
public override void Speak() {
Console.WriteLine("Meow"); }
www.youtube.com/@zohairahmed007
}
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com
Example of Using OOP Concepts in C#
• In this example: public class Program
{
• Person demonstrates Encapsulation by public static void Main()
controlling access to its properties. {
Person person = new Person();
• Animal and Dog classes showcase person.Name = "Alice";
Abstraction with an abstract Speak person.Age = 25;
method. Dog dog = new Dog();
dog.Speak(); // Outputs: Woof!
• Vehicle and Car classes represent
Inheritance. Car myCar = new Car();
Console.WriteLine(myCar.Brand + " " + myCar.ModelName);
• Polymorphism is illustrated in Animal and myCar.Honk(); // Outputs: Beep beep!
Cat classes with method overriding. }
}
www.youtube.com/@zohairahmed007
www.begindiscovery.com
By : Zohair Ahmed www.youtube.com/@zohairahmed007 www.begindiscovery.com