Вот как это работает.Когда вы создаете экземпляр дочернего класса, вам также необходимо создать экземпляр переменных-членов родительского / суперкласса.Если у вас есть конструктор по умолчанию в суперклассе, тогда эти переменные-члены инициализируются в их значения по умолчанию.Если у вас нет конструктора по умолчанию, вам придется вызвать параметризованный конструктор для их инициализации.Вот почему вам требуется вызов super (date) в вашем ClassAdmin конструкторе.
Также вам не нужно инициализировать переменные члена суперкласса, такие как id, пароль, имя и т. Д. В конструкторе ClassAdmnin .Как только вы добавите вызов super (data) в этот конструктор, переменные-члены родительского класса будут инициализированы в самом конструкторе родительского класса.
Более того, ваш текущий код будет выдавать исключение NullPointerException, когда вы получаете значение из массива на основепо индексу без проверки размера массива.Если вы видите первый конструктор ClassAdmin , то в строке, которую вы отправляете конструктору суперкласса, нет запятой (,).Вы можете добавить его как super (id + "," + password + "," + name + "," + contact)
public ClassAdmin(String data){
super(data); // Add this line and it should fix the problem.
String[] dataArray = data.split(",");
this.id = dataArray[0];
this.password = dataArray[1];
this.name = dataArray[2];
this.contact = dataArray[3];
this.email = dataArray[4];
}