Проблемы с методом super()

Всем привет. Компилятор пишет, что метод super() должен быть первым в конструкторе. Но дело в том, что он и так первый в конструкторе. Подскажите, пожалуйста, что не так?

package com.company;

public class Person {
    static String name;
    static int age;
    void person(String n, int a) {
        name = n;
        age = a;
    }
    void show() {
        System.out.println(name + age);
    }
}


package com.company;

public class Student extends Person {
    String group;
    String speciality;
    void  Student(String n, int a, String g, String s) {
        super(n, a);
        group = g;
        speciality = s;
    }
    void show() {
        System.out.println(Person.name + Person.age + group + speciality);
    }
}


package com.company;

public class Main {

    public static void main(String[] args) {
        Person obj1 = new Person();
        obj1.name = "...";
        obj1.age = 0;
        obj1.show();
        Student obj2 = new Student();
        obj2.group = "...";
        obj2.speciality = "...";
        obj2.show();
    }
}

Ответы (3 шт):

Автор решения: Павел Лозовиков

В классе Student у тебя есть метод student. Поскольку он - с маленькой буквы, он не является конструктором, а следовательно, в нём не может быть super Более того, метод super может быть лишь в конструкторе того класса, который унаследован от другого (при помощи ключевого слова extends)

→ Ссылка
Автор решения: Руслан Исланбеков

Разве конструктор имеет возврашаемый тип? Скорее всего ругается что есть метод с именем конструктора, и переопределение конструктора невозможна изза отсутствии конструктора.

→ Ссылка
Автор решения: Igor
public class Person {
  ...
  public Person(String n, int a) {
    ...

public class Student extends Person {
  ...
  public Student(String n, int a, String g, String s) {
    super(n, a);
    ...
→ Ссылка