คำถามของฉันเกี่ยวกับกรณีพิเศษของ Animal super class
- ฉัน
AnimalสามารถและmoveForward()eat() SealAnimalขยายDogAnimalขยาย- และมีสิ่งมีชีวิตพิเศษที่ยังขยายที่เรียกว่า
AnimalHuman Humanใช้วิธีการspeak()(ไม่ได้ใช้Animal)
ในการใช้วิธีนามธรรมซึ่งยอมรับAnimalฉันต้องการใช้speak()วิธี ดูเหมือนว่าจะเป็นไปไม่ได้หากไม่มีการลดทอนลง Jeremy Miller เขียนไว้ในบทความของเขาว่ามีกลิ่นเหม็น
อะไรจะเป็นวิธีการแก้ปัญหาเพื่อหลีกเลี่ยง downcasting ในสถานการณ์นี้?