Abstract interface inheritance
<p>Pure virtual methods always must be reimplemented in derived class? <br/>
Can i write something like this? </p>

<pre><code>class BaseInterface 
{
public:
   virtual void fun_a() = 0;
   virtual void fun_b() = 0;
   virtual ~BaseInterface(); 
};

class Derived : public BaseInterface
{
   void fun_a() { ... };
};

class FinalClass : public Derived
{
   void fun_b() { ... };
}

int main()
{
   FinalClass test_obj;
   test_obj.fun_a();  // use Derived implementation or fail ???
   test_obj.fun_b();  // use own implementation 
   BaseInterface* test_interface = new FinalClass();
   test_interface-&gt;fun_a(); // fail or ok ???
   test_interface-&gt;fun_b(); 
}
</code></pre>

<p>Is that code above correct?
Exist another methods outflank "pure vitual"?</p>
