abstract method declared in one class and implemented in a derived partial class
<p>I am making changes to code in which <code>myFunc()</code> declared and called within a parent class, where it is declared abstract. And it is actually implemented in the derived class? I know partial classes have this property where the definition can be split over multiple files - but the classes A and B are in different namespaces and both do not use the keyword "<code>partial</code>". </p>

<p>Is this code implemented correctly? Or is it violating a C# language rule?</p>

<p>File1.cs</p>

<pre><code>namespace PQR
{
    public abstract class A : UserControl
    {
       protected abstract void myFunc(); //no definition because it is declared abstract
    }

    protected void use_myFunc(int i)
    {
        //call myFunc(). called in a parent class, 
        //where it is declared abstract. And  
        //it is actually implemented in the derived class???
        myfunc();
    }
} 
</code></pre>

<p>File2.cs</p>

<pre><code>namespace ABC
{
    public partial class B : PQR.A
    {
       protected override void myFunc() 
       {
          //do something.
       }
    }
}
</code></pre>
