通过依赖倒置,将子类数据传递给父类

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);
这样我们就可以获得子类的参数和方法

posted @ 2024-07-01 17:50  孤沉  阅读(10)  评论(0编辑  收藏  举报