CHƢƠNG 3 KẾ THỪA
2. THIẾT KẾ VÀ CÀI ĐẶT LỚP TRONG MỐI QUAN HỆ KẾ THỪA
2.6. Chuyển đổi ngầm định đối tƣợng lớp dẫn xuất sang lớp cơ sở
Mặc dù một đối tƣợng lớp dẫn xuất cũng là một đối tƣợng lớp cơ sở, kiểu lớp dẫn xuất và kiểu lớp cơ sở thì khác nhau. Các đối tƣợng lớp dẫn xuất cĩ thể đƣợc xử lý nhƣ các đối tƣợng lớp cơ sở. Điều này cĩ ý nghĩa bởi vì lớp dẫn xuất cĩ các thành viên tƣơng ứng với mỗi thành viên của lớp cơ sở. Phép gán theo chiều hƣớng ngƣợc lại là khơng cho phép bởi vì gán một đối tƣợng lớp cơ sở cho đối tƣợng lớp dẫn xuất sẽ cho phép thêm các thành viên lớp dẫn xuất khơng xác định.
Một con trỏ trỏ tới một đối tƣợng lớp dẫn xuất cĩ thể đƣợc chuyển đổi ngầm định thành một con trỏ trỏ tới một đối tƣợng lớp cơ sở bởi vì một đối tƣợng lớp dẫn xuất là một đối tƣợng lớp cơ sở.
Cĩ bốn cách để trộn và đối sánh các con trỏ lớp cơ sở và các con trỏ lớp dẫn xuất với các đối tƣợng lớp cơ sở và các đối tƣợng lớp dẫn xuất:
- Tham chiếu tới một đối tƣợng lớp cơ sở với một con trỏ lớp cơ sở thì khơng phức tạp.
- Tham chiếu tới một đối tƣợng lớp dẫn xuất với một con trỏ lớp dẫn xuất thì khơng phức tạp.
- Tham chiếu tới đối tƣợng lớp dẫn xuất với một con trỏ lớp cơ sở thì an tồn bởi vì đối tƣợng lớp dẫn xuất cũng là một đối tƣợng lớp cơ sở của nĩ. Nhƣ vậy đoạn mã chỉ cĩ thể tham chiếu tới các thành viên lớp cơ sở. Nếu đoạn mã tham chiếu tới các thành viên lớp dẫn xuất thơng qua con trỏ lớp cơ sở, trình biên dịch sẽ báo một lỗi về cú pháp. - Tham chiếu tới một đối tƣợng lớp cơ sở với một con trỏ lớp dẫn xuất
thì cĩ lỗi cú pháp. Đầu tiên con trỏ lớp dẫn xuất phải đƣợc ép sang con trỏ lớp cơ sở.