title: Overriden Virtual methods not being called
body: <p>I'm trying to create an abstract class that some other classes can be based off of for an arduino project. But, whenever I call a method that is virtual in the base, it just calls the base implementation. Code below. Can anyone see what I'm doing wrong?</p>
  
  <pre><code>#define RTCBASE 0
  class RTC_Base {
  public:
    virtual uint8_t begin(void){ return 0; };
    virtual void adjust(const DateTime&amp; dt){};
    virtual DateTime now(){ return DateTime(); };
    virtual int Type(){ return RTCBASE; };
  };
  ////////////////////////////////////////////////////////////////////////////////
  // RTC based on the DS1307 chip connected via I2C and the Wire library
  #define DS1307 1
  class RTC_DS1307 : public RTC_Base 
  {
  public:
    virtual int Type(){ 
      return DS1307; 
    }
    uint8_t begin(void);
    void adjust(const DateTime&amp; dt);
    uint8_t isrunning(void);
    DateTime now();
    uint8_t readMemory(uint8_t offset, uint8_t* data, uint8_t length);
    uint8_t writeMemory(uint8_t offset, uint8_t* data, uint8_t length);
  
  
  };
  
  ///In Code
  RTC_Base RTC = RTC_DS1307();
  DateTime dt = RTC.now();
  //The above call just returns a blank DateTime();
  </code></pre>