bbs*_*nbb -5 c# polymorphism object
在C#中,我有一个带有公共成员的父类.我想派生父类,然后派生公共成员的类,以便创建和访问新方法,如下所示......
public class Animal { }
public class Sheep : Animal {
public void makeALamb() { }
}
public class Farm
{
public Animal myAnimal;
}
public class SheepFarm : Farm {
public void SheepFarm() {
this.myAnimal = new Sheep();
this.myAnimal.makeALamb();
}
}
Run Code Online (Sandbox Code Playgroud)
此代码无法编译."Animal不包含makeALamb()的定义".但我想做的是多态的本质,不是吗?我错过了什么?我非常期待找到答案.
提前致谢!
因为myAnimal是类型Animal.因此,它只能访问Animal...的成员,并且Animal没有方法makeALamb.
这里任务的右侧:
this.myAnimal = new Sheep();
Run Code Online (Sandbox Code Playgroud)
..它是什么.左侧显示您的代码所看到的内容.你的任务的左侧是:
public Animal myAnimal;
// ^^^^^^
Run Code Online (Sandbox Code Playgroud)
现在..假装你尝试过的东西是可能的..考虑一下:
this.myAnimal = new Snake();
this.myAnimal.makeALamb(); // what does it call here?
this.myAnimal = new Giraffe();
this.myAnimal.makeALamb(); // what here?
Run Code Online (Sandbox Code Playgroud)
..当你打电话makeALamb给一个Snake实例时会发生什么?...
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |