反分散とラッセ V. カールセンの答えに関する次の投稿を読みました。
概念は理解できても、なぜそれが役立つのかわかりません。たとえば、なぜ誰かが読み取り専用リストを作成するのでしょうか (投稿のように: List<Fish> fishes = GetAccessToFishes(); // for some reason, returns List<Animal>
)
また、メソッドのパラメーターのオーバーライドが反分散になる可能性があることも知っています (概念的には。これは、私の知る限り、C#、Java、および C++ では使用されていません)。これが理にかなっている例にはどのようなものがありますか?
いくつかの簡単な実世界の例をいただければ幸いです。