1
回答
java to C# 为什么调用不了传入的对象的方法
终于搞明白,存储TCO原来是这样算的>>>   

public abstract class D{
  class A : ArrayList
  {
    D sub;
    public A(D d)
    {
      sub = d;
    }
    public void aa(P p)
    {
      sub.aa(p); //这里调用的是D的aa方法,,为什么?????????想要的是调用 B.aa   

add(sub); // 这里添加的一直是空值
    }
  }

  public void aa()
  {}
}

class B:D
{
  public void aa(P p)
  {}
}
// 这里是主程序
class C
{

public void main(){
  P p =new P(); // 数据参数
  B b=new B();
  D.A a=new D.A(b); // 这里传入的是一个对象
  a.aa(p);

}
}

在java里这里调用的方法是 B.aa,在C#里为什么调用的是D的aa方法?
还有一个很重要的就是传入的对象问题,返回的一直是空值,,,

举报
悦澜殇
发帖于4年前 1回/246阅
共有1个答案 最后回答: 4年前
java函数默认是虚函数, c# 默认不是虚函数, 需要在函数前加virtual声明为虚函数, 以及在派生类中用override关键字
--- 共有 1 条评论 ---
悦澜殇我这样做了,,问题还有一个。 D的基类是ArrayList,,设定返回的是一维数组, 返回D.A的一维数组,维数是对了,可是返回的对象都会变成同一个值,, 查了一下是引用类型,请教怎么改??? 4年前 回复
顶部