110,533
社区成员
发帖
与我相关
我的任务
分享
public class A{
public virtual void fun1(int i){
Console.WriteLine(i);
}
public void fun2(A a){
fun1(5);
}
}
public class B:A{
public override void fun1(int i)
{
base.fun1(i+1);
}
}
static void Main(string[] args)
{
B b = new B();
A a = new A();
b.fun2(a);
}
public void fun2(A a){
fun1(5);
}
public class A{
public virtual void fun1(int i){
Console.WriteLine(i);
fun1(i);
//虽然是使用base关键字进入这里,但是该环境下 this.getType().Name依然是B
//所以会调用b.fun1 然后再进入这里。 溢出了~~~~~~~~~~~~~~~~~~
}
public void fun2(A a){
this.fun1(5);
}
}
public class B:A{
public override void fun1(int i)
{
base.fun1(i + 1);//进入基类fun1
}
}
B b = new B();
A a = new A();
//b.fun2(a);
b.fun1(5);
public class A{
public virtual void fun1(int i){
Console.WriteLine(i);
}
public void fun2(A a){
this.fun1(5);// this.getType().Name=="B"
}
}
public class A
{
public virtual void fun1(int i)
{
Console.WriteLine(i);
}
public virtual void fun2(A a)
{
fun1(5);
}
}
public class B : A
{
public override void fun2(A a)
{
fun1(5);
}
public override void fun1(int i)
{
base.fun1(i + 1);
}
}