Oii, Cauan.
Gostei muito da sua abordagem. O uso do construtor para exigir a altura e a largura logo no nascimento do objeto é uma prática excelente, pois garante que não existirá um retângulo "vazio" ou com medidas inválidas no sistema.
Para alinhar sua solução com o que o exercício propõe e te dar mais flexibilidade no futuro, tenho duas observações técnicas.
A primeira é sobre a responsabilidade do método. O enunciado pede que a função retorne o valor da área. No seu código, você usou void e imprimiu direto na tela. O ideal, em Orientação a Objetos, é que a classe apenas faça a conta e devolva o número (double). Assim, o programa principal decide se vai imprimir, salvar num banco de dados ou usar esse número em outra fórmula.
A segunda é sobre as propriedades Altura e Largura. Você usou apenas o get;, o que torna o objeto imutável (leitura apenas). Isso é ótimo para segurança, mas se você precisar redimensionar o retângulo depois de criado, o código daria erro. Para seguir o modelo da aula, o set; é necessário.
Parabéns pela implementação. Continue assim.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!