← Back to Tutorials Chapter 6

Advanced OOP

Inheritance

A class can inherit members from a base class using the : syntax.

class Animal {
    public string Name { get; set; }
    public void Eat() => Console.WriteLine("Eating...");
}

class Dog : Animal {
    public void Bark() => Console.WriteLine("Woof!");
}

Dog d = new Dog();
d.Name = "Buddy";
d.Eat();
d.Bark();

Polymorphism (virtual/override)

class Shape {
    public virtual double Area() => 0;
}
class Circle : Shape {
    public double Radius { get; set; }
    public override double Area() => Math.PI * Radius * Radius;
}
class Rectangle : Shape {
    public double Width { get; set; }
    public double Height { get; set; }
    public override double Area() => Width * Height;
}

Abstract Classes

abstract class Vehicle {
    public abstract void Start();
    public void Stop() => Console.WriteLine("Stopped");
}
class Car : Vehicle {
    public override void Start() => Console.WriteLine("Car started");
}

Interfaces

interface IComparable {
    int CompareTo(object obj);
}
interface IPrintable {
    void Print();
}

Enums

enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
Days today = Days.Wednesday;
Console.WriteLine((int)today);
C# inheritance hierarchy

Practice Task

Write a C# program that applies the concepts covered in this chapter. Experiment with different inputs and test your understanding.