🧱 Object-Oriented Programming: Beyond the Basics
🔹 Inheritance & Polymorphism
class Animal
{
public virtual void Speak()
{
Console.WriteLine("Animal speaks");
}
}
class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Dog barks");
}
}
Animal pet = new Dog();
pet.Speak(); // Output: Dog barks
🔹 Abstract Classes vs Interfaces
abstract class Shape
{
public abstract double Area();
}
interface IDrawable
{
void Draw();
}
class Circle : Shape, IDrawable
{
public double Radius { get; set; }
public override double Area() => Math.PI * Radius * Radius;
public void Draw() => Console.WriteLine("Drawing Circle");
}
| Feature | Abstract Class | Interface |
|----------------|---------------------------------|------------------------------------------|
| Implementation | Can have method bodies | Cannot (until default interface methods) |
| Inheritance | One abstract class max | Multiple interfaces allowed |
| Use Case | Shared base behavior | Common capabilities |