看看如下代码:
public class Animal
{
public void EatFood(System.Windows.Forms.TextBox myTextBox)
{
myTextBox.Text="Animal EatFood Method";
} }
public class Cow:Animal
{

             public void EatFood(System.Windows.Forms.TextBox myTextBox)          
                  {       myTextBox.Text="Cow EatFood Method";                  

}
}
private void button3_Click(object sender, System.EventArgs e)
{
Cow myCow=new Cow();
Animal myAnimal=myCow;
myAnimal.EatFood(this.textBox3);
}大家说最后是显示什么?是"Cow EatFood Method" 还是"Animal EatFood Method"??

解决方案 »

  1.   

    你这个只是隐藏,不是多态,所以调用的是类Animal的EatFood
      

  2.   

    同意楼上的观点,但书上提示是myAnimal.EatFood()调用了派生类中的EatFood方法,而我运行时就是调用的基类的EatFood方法啊!有点困惑了!
      

  3.   

    这样的代码,编译器会warning的用上new关键字吧
      

  4.   

    错是不回错
    但不规范,我从来不喜欢我的程序编译的时候有任何warning
      

  5.   

    坚持信念兄,多态需要在animal类中使用visual关键字和在cow中使用override关键字吧?好,接分吧,呵呵!
      

  6.   

    喔,错了,是virtual关键字,呵呵
      

  7.   

    是的
    不过也不一定
    abstract也型
      

  8.   

    另外,多台不只是跟interface才有联系的