Về vấn đề class cha và class con

Giả sử ta có 2 class A và B, A là cha của B:

Va ta có 2 biến a, b: A a, B b:

Tại sao phép gán a = b lại đúng
Và tại sao phép gán b = a lại sai.

Các bạn giải thích giúp mình với ạ. Cảm ơn mọi người

Vì đó là quy luật tự nhiên.
Một trường (biến) lớp cha có thể gán giá trị của lớp con cho nó, ngược lại thì không.
Có thể được, nhưng phải ép kiểu, thực thể được ép kiểu phải là kiểu cần ép hoặc con của nó.
Tự nhiên thôi.

5 Likes

Giả sử B có thêm 1 phương thức mà A không có.
Rồi bạn gọi b.phuongthucriengcuaB() vầy sao được, vì a ko có phương thức này nên nó đâu hiểu sẽ làm gì??
Còn a.phuongthucgido() thì sẽ đúng vì phuongthucgido() cũng có trong B (do B được kế thừa từ A). theo mình hiểu là v

5 Likes

Nếu A có thêm class con B’, thì b = a tức là có thể gán tham chiếu B là (hay nói cách khác là trỏ vào) đối tượng của B’, toang :smiley:

4 Likes

Câu trả lời này có vẻ dễ hiểu nè.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?