因此,我具有超类角色,以及子类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.