Abstract base class

bungalally:
Does anyone have any examples for this kind of coding

This is an example of base and derived classes:

// abstract base class
class baseClass 
  {
  public:
  virtual int foo (const int bar) = 0;
  }; // end of baseClass

// derived class 1
class buttonClass : baseClass
  {
  public:
  virtual int foo (const int bar)
     {
     return bar * 2;  
     }
  }; // end of buttonClass

// derived class 2
class switchClass : baseClass
  {
  public:
  virtual int foo (const int bar)
     {
     return bar * 3;  
     }
  }; // end of switchClass
  
void setup ()
{
  Serial.begin (115200);
//  baseClass a;  // <-- error, you can't make an instance of an abstract class
  buttonClass b;
  switchClass c;
  Serial.println (b.foo (5));
  Serial.println (c.foo (8));
}  // end of setup

void loop () {}

Output:

10
24