C# Inheritance

Diễn Giải Về Kế Thừa Trong C#

Kế thừa (Inheritance) là một trong những đặc điểm quan trọng của lập trình hướng đối tượng. Trong C#, kế thừa cho phép một lớp (class) mới được tạo ra từ một lớp đã tồn tại, thường được gọi là lớp cơ sở (base class) hoặc lớp cha (parent class). Lớp mới này, được gọi là lớp dẫn xuất (derived class) hoặc lớp con (child class), có thể kế thừa các thuộc tính và phương thức từ lớp cơ sở và có thể mở rộng hoặc thay thế các thành phần đó.

Định Nghĩa

Kế thừa cho phép tái sử dụng mã, giúp giảm thiểu sự lặp lại và tổ chức mã tốt hơn. Khi bạn tạo một lớp dẫn xuất, nó sẽ tự động có tất cả các đặc điểm của lớp cơ sở, đồng thời có thể thêm những thuộc tính và phương thức mới hoặc ghi đè (override) các phương thức đã được định nghĩa trong lớp cơ sở.

Cú Pháp

Cú pháp khai báo kế thừa trong C# được thực hiện bằng cách sử dụng dấu ':' sau tên lớp dẫn xuất, theo sau là tên lớp cơ sở. Ví dụ:

class LớpCơSở
{
    public void PhươngThứcCơSở()
    {
        Console.WriteLine("Phương thức từ lớp cơ sở.");
    }
}

class LớpDẫnXuất : LớpCơSở
{
    public void PhươngThứcDẫnXuất()
    {
        Console.WriteLine("Phương thức từ lớp dẫn xuất.");
    }
}

Ví Dụ Minh Họa

Dưới đây là một ví dụ hoàn chỉnh minh họa cách sử dụng kế thừa trong C#:

using System;

class ĐộngVật
{
    public void Kêu()
    {
        Console.WriteLine("Động vật đang kêu.");
    }
}

class Chó : ĐộngVật
{
    public void Kêu()
    {
        Console.WriteLine("Chó sủa.");
    }
}

class Mèo : ĐộngVật
{
    public void Kêu()
    {
        Console.WriteLine("Mèo kêu.");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Chó chó = new Chó();
        chó.Kêu(); // Kết quả: "Chó sủa."

        Mèo mèo = new Mèo();
        mèo.Kêu(); // Kết quả: "Mèo kêu."
    }
}

Kết Luận

Kế thừa trong C# giúp cho việc quản lý và tổ chức mã trở nên hiệu quả hơn. Bằng cách sử dụng kế thừa, bạn có thể tạo ra các mối quan hệ giữa các lớp, tận dụng lại mã đã viết và làm cho ứng dụng của bạn có cấu trúc tốt hơn. Ngoài ra, nó cũng hỗ trợ cho việc mở rộng và bảo trì ứng dụng trong tương lai.