Как создать объекты при работе с наследованием? - PullRequest
0 голосов
/ 09 ноября 2019

Итак, у меня есть суперкласс Persona и подклассы Estudiante и Docente. Атрибуты nombre, cedula, mail - это атрибуты, которые я хотел иметь в Estudiante и Docente, потому что они оба есть, но так как Estudiante и Docente являются персонами, я могу использовать наследство. Все эти объекты имеют свои методы get / set и tostring. Последний код, который я разместил, - это пользовательский интерфейс, который у меня есть. Я хочу нажать кнопку и создать Estudiante, но я не могу, потому что он говорит мне, что я даю больше аргументов, чем те, которые я могу дать, так что ... как мне это сделать? Надеюсь, я все хорошо объяснил.

Я ничего не пробовал, так как не знаю, что попробовать. В первый раз, когда я написал этот код, я не думал об использовании этого суперкласса Persona, но мне сказали, что я абсолютно обязан сделать это так.

public class Estudiante extends Persona{
    private int numero;
    private int semestre;
public class Docente extends Persona {    
    private int anoingreso;
public class Persona {
    private String nombre;
    private int cedula;
    private String mail;
private void BotonCrearEstudianteActionPerformed(java.awt.event.ActionEvent evt) {                                                     
        Estudiante=new Estudiante(NombreEstudiante,CedulaEstudiante,MailEstudiante,NumeroEstudiante,SemestreEstudiante);

Iв этом случае я собираюсь создать Estudiante, но я собираюсь создать Docente, а потом собирать команды со многими из этих двух, но я не могу, потому что я привожу слишком много аргументов, как я говорил ранее.

1 Ответ

1 голос
/ 09 ноября 2019

Внутри каждого класса вам также необходимо иметь конструктор - в основном то, что вы используете, чтобы определить, как создается один из этих объектов. Например:

public class Persona{
    private String nombre;
    private int cedula;
    private String mail;


    public Estudiante(/*Insert the parameters you need, but do not call them by the same thing as your instance variables above*/){
       /*this block will execute when you create an Estudiante object*/
    }
}

Но когда вы попадаете в классы child (т.е. Estudiante и Docente), вы можете использовать метод super() внутри конструктора, который при вызове будет выполнятьсяконструктор родительского класса.

Также прочитайте это.

...