C # -Interface-Implementierungsbeziehung ist nur eine Can-Do-Beziehung?

Heute hat mir jemand gesagt, dass die Schnittstellenimplementierung in C # nur eine "Can-Do" -Beziehung ist, keine "Is-A" -Beziehung. Dies widerspricht meinem langjährigen Glauben an LSP (Liskov Substitution Principle). Ich denke immer, dass jede Vererbung "Is-A" -Beziehung bedeuten sollte.

Also, wenn die Schnittstellenimplementierung nur eine Can-Do-Beziehung ist. Was ist, wenn es eine Schnittstelle "IHuman" und "IEngineer" gibt und eine Klasse "Programmer" von "IHuman" und "IEngineer" erbt? Sicherlich ist ein "Programmierer" ein "Mensch" und ein "Ingenieur".

Wenn es sich nur um eine "Can-Do" -Beziehung handelt, können wir dann nicht erwarten, dass das Verhalten der "Programmer" -Instanz zwischen einer Behandlung als IHuman und einer Behandlung als IEngineer unterschiedlich ist?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage