这是一段 Scala 语言的代码,用于展示面向对象编程中的继承与多态特性,以下是关键分析:
1. 类的继承关系
- 父类
Fruit定义了通用方法eat(),输出 “eat...”。 - 子类
Apple和Watermelon继承Fruit,并通过override重写eat()方法,分别实现了 “吃掉果皮,中间的不能吃” 和 “削皮,中间的最好吃” 的特定逻辑。
2. 多态的体现
在 main 方法中,定义了 test 函数,其参数类型为父类 Fruit,但实际调用时传入了子类 Apple 和 Watermelon 的实例。程序会根据传入的子类对象,自动调用对应的重写方法,这就是多态—— 父类引用可以指向子类对象,且能调用子类的特有实现。
这种设计让代码更具扩展性,若后续新增其他水果子类(如 Banana),只需重写 eat() 方法,test 函数无需修改即可兼容,体现了面向对象 “开闭原则” 的设计思想。