As commenters have noted, that's not how overriding works. You can't change the signature of an overridden method at all. You could pass an instance of Child1 into your overridden Update
method, but you can't change the signature.
To get at what it seems like you want to do, you'll have to leverage generics
public class Parent1Handler<TChild> where TChild : Parent1
{
public abstract void Update(TChild model);
}
public class Child1Handler: Parent1Handler<Child1>
{
public override void Update(Child1 model)
{
....
}
}
This allows you to have a separate child Handler
for each inherited model. However, I would check yourself and make sure that this is really what you want to be doing. Model inheritance can be a trap. It can facilitate code reuse, but it can also quickly lead to nightmares where it's difficult to figure out where specific pieces of logic are. If you are going to inherit models, I'd strongly encourage you not to go more than one layer deep.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…