Chồng phương thức là việc tạo ra nhiều phương thức trùng tên với nhau nhưng nhận các tham số khác nhau hay trả về dữ liệu khác nhau. Việc phân biệt các hàm này
+ Khác nhau các tham số: khác nhau về số lượng tham số
+ Khác nhau về kiểu dữ liệu của tham số, kiểu dữ liệu trả về của phương thức. Khi nạp chồng một phương thức ta phải thay đổi kí hiệu (dấu ấn) của phương thức, số tham số hay kiểu dữ liệu của tham số hoặc có thể thay đổi cả về giá trị của các tham số. Khi đó thì thực chất không phải là nạp chồng phương thức mà đó là hai phương thức khác nhau có cùng tên nhưng khác nhau về kiểu giá trị trả về. Đó là một điều cần chú ý khi nạp chồng phương thức.
Khi gọi một phương thức có nạp chồng phương thức thì cần chú ý về số tham số, kiểu dữ liệu cho phù hợp với từng phương thức nếu không thì sẽ phát sinh lỗi khi biên dịch chương trình.
Đóng gói dữ liệu thông qua các thuộc tính:
Đóng gói dữ liệu với thuộc tính thực chất là một quá trình ta lấy giá trị cho biến thành viên và thiết lập giá trị đó cho biến để nó được truy cập thông qua phương thức của lớp mà không qua đối tượng. Trong C# cung cấp khả năng khai báo hàm chung gọi là thuộc tính cho hàm get và set
+ Phương thức get trả về một đối tượng dữ liệu kiểu thuộc tính, phương thức này giống phương thức của đối tượng.
+ Phương thức set: thiết lập giá trị của thuộc tính, có kiểu trả về là void. Khi thiết lập một phương thức set phải dùng từ khóa value để tượng trưng cho đối được trao và được giữ bởi thuộc tính.
Lợi ích của việc gói ghém dữ liệu là che giấu thông tin mặc dù người sử dụng vẫn thao tác với thuộc tính.
Vài điểm cần chú ý khi định nghĩa một thuộc tính public string (tên thuộc tính)
{
+ Ta không khai báo tường minh các tham số trong thủ tục set..
+ Có thể chỉ xây dựng thuộc tính chỉ đọc hoặc chỉ viêt bằng cách bỏ đi một trong hai thủ tục trên.
+ Nếu ta muốn tạo một thuộc tính có public để đọc nhưng lại muốn hạn chế protected trong gán thì phải tạo thuộc tính chỉ đọc public sau đó tạo một hàm set() với truy cập protected ở bên ngoài thuộc tính đó.
+ C# cho phép bạn tạo một thuộc tính virtual hay abstract ( xem thêm kế thừa và đa hình) cú pháp như sau:
public abstract string (tên thuộc tính) {
get; set; }