Dlaczego tak
Konstruktor klasy pochodnej musi najpierw wywołać konstruktor klasy bazowej, a w Javie robi się to instrukcją super(...) w pierwszym wierszu. Jeśli jej zabraknie, kompilator wstawia niejawne super() bez argumentów, a klasa Osoba nie ma takiego konstruktora — dlatego samo przypisanie this.imie = imie kończy się błędem kompilacji. Zapis base(imie) pochodzi z C#, a konstruktora nie wywołuje się po nazwie klasy.