鉴于这个高度简化的例子:abstractclassAnimal{}classDog:Animal{publicvoidBark(){}}classCat:Animal{publicvoidMew(){}}classSoundRecorderwhereT:Animal{privatereadonlyT_animal;publicSoundRecorder(Tanimal){_animal=animal;}publicvoidRecordSound(stringfact){if(this._animalisDog){((Dog)this._animal).Bark();//Compiler