1、不管是父类调用子类的方法,还是获取子类的属性,道理都是一样的,
依赖倒置只是其中一个方法
public class Child:Parent
{
public string Default {get;set;}
public Child()
{
Default="默认值";
}
}
我现在父类需要拿到子类的Default
1、增加一个接口IChild,将接口当做参数传递给父类
代码如下
public interface IChild
{
string Default { get; set; }
void SpecificMethod(int i);
}
public class Child : Parent, IChild
{
public string Default { get ; set ; }
public override void GetMethod()
{
// base.GetMethod(); //这会执行父类的方法
Console.WriteLine("这是子类方法");
}
public void SpecificMethod(int i)
{
Console.WriteLine(i);
}
public Child()
{
Default = "123";
}
}
public class Parent
{
public void GetIChild(IChild child)
{
Console.WriteLine(child.Default);
child.SpecificMethod(i);
}
public virtual void GetMethod()
{
Console.WriteLine("这是父类方法");
}
}
通过 Console.WriteLine(child.Default);
child.SpecificMethod(i);
这样我们就可以获得子类的参数和方法