ES6 Classes & Constructors

What OOP principle is demonstrated here?
class FormField {
  constructor(value = '') {
    this.value = value;
    this.errors = [];
  }
  
  setValue(value) {
    this.value = value;
    this.validate();
    return this;
  }
  
  validate() {
    this.errors = [];
    // Base validation logic
    return this.errors.length === 0;
  }
}

class EmailField extends FormField {
  validate() {
    super.validate();
    if (this.value && !this.value.includes('@')) {
      this.errors.push('Invalid email format');
    }
    return this.errors.length === 0;
  }
}
Next Question (21/28)