Đa hình trong C#
Trong bài học này, bạn sẽ dùng tính đa hình để gọi cùng một phương thức cho nhiều loại hình khác nhau qua một kiểu chung.
Giới thiệu
Đa hình (polymorphism) cho phép làm việc với nhiều loại đối tượng thông qua một kiểu chung, mà không cần dùng if để kiểm tra từng loại. Mỗi loại đối tượng tự quyết định cách thực hiện phương thức của mình.
Class trừu tượng Shape khai báo phương thức Area() mà không cài đặt, còn Circle và Square mỗi class tự cài đặt cách tính diện tích riêng bằng override. Dù biến shape trong vòng lặp có kiểu chung là Shape, chương trình vẫn tự gọi đúng phiên bản của từng đối tượng khi chạy, cho kết quả 12.57 và 9.00.
Ví dụ C# chạy được
using System;
abstract class Shape { public abstract double Area(); }
class Circle(double radius) : Shape { public override double Area() => Math.PI * radius * radius; }
class Square(double side) : Shape { public override double Area() => side * side; }
class Program
{
static void Main()
{
Shape[] shapes = { new Circle(2), new Square(3) };
foreach (Shape shape in shapes) Console.WriteLine($"{shape.Area():F2}");
}
}
12.57
9.00Luyện tập với trình gỡ lỗi
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách