What is the application of pure abstract classes ? C++ : <p>We all know a basic example of an Animal and then Cat and Dog classes. But I don't get one thing, for example let's say that Animal is a pure abstract class that has only one method:</p>

<pre><code>    virtual void sayHello() = 0;
</code></pre>

<p>Then we make classes Cat and Dog and we still need to overwrite the method in their classes, so what's basically the purpose of it, becasue for now I see only additional code. 
I had one example with BankAccount class, we made 2 pure virtual classes only with methods: one to freeze an account and 2nd to put out the message about deposit. Then we made SavingsAccount class, which inherited all previously mentioned class and still I had to overwrite these pure virtual methods. Even If I did another i.e. account in foreign currency CurencyAccount, I still would have to overwrite the pure virtual method. So what's the purpose of making these pure virtual classes and methods?  </p>
