Java Language Le principe de substitution de Liskov


Exemple

Substituabilité est un principe dans la programmation orientée objet présenté par Barbara Liskov dans une keynote de la conférence 1987 indiquant que, si la classe B est une sous - classe de la classe A , alors où A est prévu, B peut être utilisé à la place:

class A {...}
class B extends A {...}

public void method(A obj) {...}

A a = new B(); // Assignment OK
method(new B()); // Passing as parameter OK

Cela s'applique également lorsque le type est une interface, où il n'y a pas besoin de relation hiérarchique entre les objets:

interface Foo {
    void bar();
}

class A implements Foo {
    void bar() {...}
}

class B implements Foo {
    void bar() {...}
}

List<Foo> foos = new ArrayList<>();
foos.add(new A()); // OK
foos.add(new B()); // OK

Maintenant, la liste contient des objets qui ne proviennent pas de la même hiérarchie de classes.