C# Language
* OOP stands for Object-Oriented Programming. It's a programming paradigm that revolves around the concept of "objects," which are instances of classes. Learn more in-depth concepts about OOP from the C++ chapter.
OOP in C#
Object-Oriented Programming (OOP) in C# is a fundamental concept that allows developers to create modular, reusable, and maintainable code by organizing it into objects that interact with each other. Here's an in-depth overview of OOP principles in C#:
Classes and Objects: Everything revolves around classes and objects. A class is a blueprint for creating objects, and an object is an instance of a class. Classes define the properties (attributes) and behaviors (methods) of objects.
class Car { public string Make { get; set; } public string Model { get; set; } public void Drive() { Console.WriteLine("Driving..."); } } Car myCar = new Car(); myCar.Make = "Toyota"; myCar.Model = "Camry"; myCar.Drive();
Encapsulation: Encapsulation is the bundling of data (attributes) and methods (behaviors) that operate on that data within a single unit, i.e., a class. It hides the internal state of an object and only exposes the necessary functionalities.
class Person { private string name; public string Name { get { return name; } set { name = value; } } public void DisplayInfo() { Console.WriteLine($"Name: {Name}"); } }
Inheritance: Inheritance allows a class (subclass/derived class) to inherit the properties and behaviors of another class (base class). It promotes code reuse and establishes a hierarchical relationship between classes.
class Person { private string name; public string Name { get { return name; } set { name = value; } } public void DisplayInfo() { Console.WriteLine($"Name: {Name}"); } }
Polymorphism: Polymorphism allows objects of different classes to be treated as objects of a common superclass. It enables methods to behave differently based on the object they are called on. There are two types of polymorphism: compile-time (method overloading) and runtime (method overriding).
class Shape { public virtual void Draw() { Console.WriteLine("Drawing a shape..."); } } class Circle : Shape { public override void Draw() { Console.WriteLine("Drawing a circle..."); } } class Rectangle : Shape { public override void Draw() { Console.WriteLine("Drawing a rectangle..."); } } Shape shape = new Circle(); shape.Draw(); // Output: Drawing a circle shape = new Rectangle(); shape.Draw(); // Output: Drawing a rectangle
Abstraction: Abstraction focuses on hiding the complex implementation details and showing only the essential features of an object. It is achieved through abstract classes and interfaces.
abstract class Shape { public abstract void Draw(); } class Circle : Shape { public override void Draw() { Console.WriteLine("Drawing a circle..."); } } interface IShape { void Draw(); } class Rectangle : IShape { public void Draw() { Console.WriteLine("Drawing a rectangle..."); } }
Interfaces: Interfaces define a contract that classes can implement. They contain only the signatures of methods, properties, events, or indexers. A class can implement multiple interfaces but can inherit from only one class.
interface IAnimal { void Eat(); void Sleep(); } class Dog : IAnimal { public void Eat() { Console.WriteLine("Dog is eating..."); } public void Sleep() { Console.WriteLine("Dog is sleeping..."); } }
• These are the core concepts of OOP in C#. Understanding and effectively utilizing these concepts can lead to well-structured, maintainable, and scalable code.
What's Next?
We've now entered the finance section on this platform, where you can enhance your financial literacy.