Ambiguity with inheriting an optional-parameter base method <p>I have a base class with one optional default parameter, which a child class automatically provides a value for:</p> <pre><code>public class Merchant { public string WriteResults(List&lt;string&gt; moreFields = null) { List&lt;string&gt; ListOfObjects = new List&lt;string&gt;() {Name, Address}; if (moreFields != null) { ListOfObjects.AddRange(moreFields); } return ListOfObjects.ToString() //not real output } public class SpecificMerchant : Merchant { new public string WriteResults() { return ((Merchant)this).WriteResults(new List&lt;string&gt;() { Address, Phone //class-specific parameters }); } } </code></pre> <p>I used the <code>new</code> keyword when calling <code>SpecificMerchant.WriteResults</code> because both the parent and the base can take no parameters, but the compiler says this is unnecessary:</p> <blockquote> <p>The member 'SpecificMerchant.WriteResults()' does not hide an inherited member. The new keyword is not required.</p> </blockquote> <p>Why? Aren't I, in practice, overriding the parent method?</p>