因此,我具有超类角色,以及子类Estudiante和Docente。
属性nombre,cedula,mail是我希望在Estudiante和Docente上拥有的属性,因为它们都具有它们,但是由于Estudiante和Docente都是Persona的属性,因此我可以使用继承。所有这些对象都有其get / set和tostring方法。
我发布的最后一个代码是我拥有的UI。我想按下一个按钮并创建一个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);


我希望在这种情况下可以创建一个Estudiante,但是我也要创建Docente,然后用这两个中的很多来组成团队,但是我不能这样做,因为IM给出的论点太多了。

最佳答案

在每个类中,您还需要有一个构造函数-基本上是用来定义如何创建这些对象之一的构造函数。像这样:

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*/
    }
}


但是当您进入子类(即Estudiante和Docente)时,可以在构造函数中使用super()方法,该方法在调用时将运行父类的构造函数。

Give this a read too.

09-11 17:52