Liskov Substitution Principle
- Herhangi bir işlevsel kod bloğu kullandığı objenin gerçek tipini bilmeden işlem yapabilmelidir.
Hatalı Örnek
class Car{
void drive();
}
class Airplane{
void fly();
}
class Engine{
void startEngine(Object vehicle){
if(vehicle instanceof Car car){
car.drive();
}else if(vehicle instanceof Airplane airplane){
airplane.fly();
}
}
}
Düzeltilmiş Örnek
interface Vehicle{
void start();
}
class Car implements Vehicle{
void drive();
void start(){
drive();
}
}
class Airplane implements Vehicle{
void fly();
void start(){
fly();
}
}
class Engine{
void startEngine(Vehicle vehicle){
vehicle.start();
}
}