ソリッド- LSP


王侯の変わり目

Se q(x) é uma propriedade demonstrável dos objetos x de tipo T. Então q(y) deve ser verdadeiro para objetos y de tipo S onde S é um subtipo de T.


<研究ノート> A . A . C . A . N .
PORの例
Temos - uma Classse ve Clao , com um m To todo voe () e Temos - uma classe helic - de ptero que herda essa classe ve culculo
    public class Veiculo
    {
        public string Nome { get; set; }
        public virtual void Voar()
        {
            Console.WriteLine($"O veículo {Nome} está voando");
        }
    }

    public class Helicoptero : Veiculo
    {

    }
テュト・ケルト著,『パウロ・パウロ・ヴォルの呪文について』Ma E se Tivermos UMA CLASSE MOTO Herdando A classe veはculo、desta forma?
    public class Moto: Veiculo
    {

    }

...

Veiculo moto = new Moto();
moto.Voar() //>>>>>>>>>> WTF!?

<論文>馬鹿としての詩ロゴ、Estamos Quebrando o Princessは、ピオda代用品です.
Solu
ティラモスO Mは、todo voar () da classe veは、cule e criamos - uma - classe ve cury es reo com o m are todo voar () e ent ent o o fazemos com que nossa classe helic - de ptero herde a classe ve - lapa - eo - reoです.
    public class Veiculo
    {
        public string Nome { get; set; }
    }

    public class VeiculoAereo : Veiculo
    {
        public virtual void Voar()
        {
            Console.WriteLine($"O veículo {Nome} está voando");
        }
    }

    public class Helicoptero : VeiculoAereo
    {

    }

    public class Moto: Veiculo
    {

    }
デア・フォルマ・ネムのモー・E・ネムO .ヘーリック『ピテル・デクマス・デ・バイコ』について
<書評> UMA Classe Lavarapido Com M ' m ' To do do Larar () que que by Tipo de Viciculo
    public class LavaRapido
    {
        public void Lavar(Veiculo veiculo)
        {
            Console.WriteLine($"Lavando o veiculo {veiculo.Nome}");
        }
    }
Eアッシ・コンシオ・ラヴァー・メウス・ドゥー・ヴェ・クロス・メロス『メロス・ヘーヴ・イン・プール・セジャー・ム・ヴェル』
var lavaRapido = new LavaRapido();

Veiculo moto = new Moto();
VeiculoAereo helicoptero = new Helicoptero();

lavaRapido.Lavar(moto);
lavaRapido.Lavar(helicoptero);