OOP für Anfänger - Einstieg mit nachvollziehbarer Erklärung

Zwei Blinkklassen, wobei die eine von der anderen erbt, allerdings nur die Intervallzeit verändert wird. Mir fiel grad nichts Spannenderes ein. Das Programm basiert auf #75. Der Compiler ist zufrieden, die LEDs blinken, hilft es auch diesem Thema? Zumindest ist es etwas simpler gestrickt als das Beispiel von combie. Fehler sind möglich.

class Blink {
  protected:
    byte pin;
    bool zustand;
    uint32_t aktMillis, intervallMillis;
  public:
    Blink (byte _pin, uint32_t _intervallMillis) {
      pin = _pin;
      zustand = LOW;
      aktMillis = 0;
      intervallMillis = _intervallMillis;
      pinMode(pin, OUTPUT);
      digitalWrite(pin, zustand);
    }

    void blinke() {
      if (millis() - aktMillis >= intervallMillis) {
        aktMillis = millis();
        zustand = !zustand;
        digitalWrite(pin, zustand);
      }
    }
};
class Blink2 : public Blink {
    uint32_t intervall;
    bool zustand;
    uint32_t aktMillis;
  public:
    Blink2(byte _pin, uint32_t _intervallMillis): Blink(_pin, _intervallMillis) {
      intervall = _intervallMillis * 10;
      pinMode(pin, OUTPUT);
      digitalWrite(pin, zustand);
    }
    void blinke2() {
      if (millis() - aktMillis >= intervall) {
        aktMillis = millis();
        zustand = !zustand;
        digitalWrite(pin, zustand);
      }
    }
};

Blink led1( 13, 500 );
Blink2 led2( 8, 115 );

void setup() {
}


void loop() {
  led1.blinke();
  led2.blinke2();
}