里氏替换原则是面向对象设计的基本原则之一,它指出子类对象可以在任何需要父类对象的地方使用,而不会产生意外的行为。
// 父类
@interface Animal : NSObject
- (void)sayHello;
@end
@implementation Animal
- (void)sayHello {
NSLog(@"Animal says hello");
}
@end
// 子类1
@interface Dog : Animal
@end
@implementation Dog
- (void)sayHello {
NSLog(@"Dog says hello");
}
@end
// 子类2
@interface Cat : Animal
@end
@implementation Cat
- (void)sayHello {
NSLog(@"Cat says hello");
}
@end
// 使用场景
void greetAnimal(Animal *animal) {
[animal sayHello];
}
int main() {
Animal *animal1 = [[Animal alloc] init];
Animal *animal2 = [[Dog alloc] init];
Animal *animal3 = [[Cat alloc] init];
greetAnimal(animal1); // 输出:Animal says hello
greetAnimal(animal2); // 输出:Dog says hello
greetAnimal(animal3); // 输出:Cat says hello
return 0;
}
在上面的代码中,定义了一个父类`Animal`和

本文详细阐述了里氏替换原则在面向对象设计中的运用,通过示例展示了如何通过继承和多态实现代码的灵活性,以及遵循原则的关键点和其带来的可复用性、可扩展性和可维护性的提升。
最低0.47元/天 解锁文章
405

被折叠的 条评论
为什么被折叠?



