Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Mọi người cho em hỏi với ạ.
Animal *list [20]; // Animal là lớp cha
for(int i=0;i<20;i++)
{
list [i]=new Cat; // Cat là lớp con
list [i] ->Enter(); // phương thức Enter() được khai báo ở lớp cha
list [i] ->getName() // phương thức getName() được khai báo ở lớp con
}
Vấn đề em gặp ở đây là : Khi khai báo như ở trên list [i]-> getName() sẽ thông báo lỗi là : "class Animal has no member getName " .
Mọi người có thể giải thích giúp em đc ko ạ .Em cảm ơn :<
Theo mình nghĩ thì như vậy:
- Animal -> lớp cha
- Cat -> lớp con
=> Khi bạn khai báo list [i]=new Cat thì bạn không thể dùng list [i] đó dể trỏ đến chính phương thức của lớp Cat được.
Ví dụ: Con không thể dùng chính tài sản của con được bởi vì nó còn quá nhỏ, mà đứa con chỉ có thể dùng tài sản của cha để dùng. Thì bạn cứ tưởng tượng là tài sản của người cha chính là phương thức của lớp Animal nhé! Chúc bạn thành công