I have a question about the code below.
When I run the project, marks an error in the calling of ImprimirDatos()
method, the errors says:
cannot find symbol. symbol: method ImprimirDatos(). location: class Articulo.
I wrote the method in the subclass deRevista
. I don't understand why is asking for the method to be in the base class.
NOTE: If you see something unusual in my code, feel free to 'correct' it, I'm totally new in this subject.
interface ImprDatos
{
String ImprimirDatos();
}
class Autor
{
private String nombre;
private String adscripcion;
Autor(String nombre,String adscripcion)
{
this.nombre=nombre;
this.adscripcion=adscripcion;
}
String getNombre()
{
return nombre;
}
String getAdscripcion()
{
return adscripcion;
}
void setNombre(String nombre)
{
this.nombre=nombre;
}
void setAdscripcion(String adscripcion)
{
this.adscripcion=adscripcion;
}
}
abstract class Articulo
{
private String nombre;
private Autor autores[]=new Autor[4];
private String fechaPublicacion;
private int codigo;
Articulo(String nombreArt,String fechaPublicacion, String nombre,String adscription,String nombre1,String adscripcion1,int codigo)
{
this.nombre=nombreArt;
this.fechaPublicacion=fechaPublicacion;
autores[0]=new Autor(nombre,adscripcion);
autores[1]=new Autor(nombre1,adscripcion1);
autores[2]=new Autor(nombre,adscripcion);
autores[3]=new Autor(nombre1,adscripcion1);
this.codigo=codigo;
}
Articulo()
{
}
String getNombre()
{
return nombre; //del articulo
}
String getfechaPublicacion()
{
return fechaPublicacion;
}
int getCodigo()
{
return codigo;
}
String getAutores()
{
String c=null;
c=autores[0].getNombre()+" "+autores[0].getAdscripcion()+"
"+autores[1].getNombre()+" "+autores[1].getAdscripcion();
return c;
}
void setAutores(Autor[] autores)
{
this.autores = autores;
}
void setNombre(String nomArt)
{
nombre=nomArt;
}
void setfechaPublicacion(String fechaPublicacion)
{
this.fechaPublicacion=fechaPublicacion;
}
void setcodigo(int cod)
{
codigo=cod;
}
}
class deRevista extends Articulo implements ImprDatos
{
private String nomRevista;
private int añoEdicion;
deRevista(){}
deRevista(String nombreArt,String fechaPublicacion, String
nombre,String adscripcion,String nombre1,String adscripcion1,String
nomRevista,int añoEdicion,int codigo)
{
super(nombreArt,fechaPublicacion,nombre,adscripcion,nombre1,adscripcion1,
codigo);
this.añoEdicion=añoEdicion;
this.nomRevista=nomRevista;
}
void setañoEdicion(int nom)
{
añoEdicion=nom;
}
int getañoEdicion()
{
return añoEdicion;
}
void setnomRevista(String nom)
{
nomRevista=nom;
}
String getnomRevista()
{
return nomRevista;
}
public String ImprimirDatos()
{
return " Nombre del articulo: " + getNombre() + " Nombre de la
revista: " + getnomRevista()
+ " Año de edicion: " + getañoEdicion() + " Autores: " +
getAutores() + " Codigo: " + getCodigo() + " Fecha de
publicacion: "
+ getfechaPublicacion();
}
}
class deCongreso extends Articulo implements ImprDatos
{
private String nomCongreso;
deCongreso(){}
deCongreso(String nombreArt,String fechaPublicacion, String
nombre,String adscripcion
,String nombre1,String adscripcion1,String nomCongreso,int
codigo)
{
super(nombreArt,fechaPublicacion,nombre,adscripcion,nombre1,adscripcion1,codigo);
this.nomCongreso=nomCongreso;
}
void setnomCongreso(String nom)
{
nomCongreso=nom;
}
String getnomCongreso()
{
return nomCongreso;
}
public String ImprimirDatos()
{
return "Nombre del articulo: " + getNombre() + " Nombre de la
revista: " + getnomCongreso()
+ " Autores: "+getAutores() + " Codigo: " + getCodigo() + "
Fecha de publicacion: "
+ getfechaPublicacion();
}
}
public class Articulo17ago
{
public static void main(String[] args)
{
Scanner x=new Scanner(System.in);
String au1[]=new String[4];
String ads1[]=new String[4];
Articulo y[]=new Articulo[4];
//ARTICULO DE REVISTA:
for(int i=0;i<2;i++)
{
System.out.println("Introduzca el nombre del articulo");
String art=x.nextLine();
System.out.println("Introduzca el nombre de la revista");
String rev=x.nextLine();
System.out.println("Introduzca el año de edicion");
int año=x.nextInt();
System.out.println("Introduzca el codigo ISSN");
int cod=x.nextInt();
System.out.println("Introduzca la fecha de publicacion");
x.nextLine();
String fec=x.nextLine();
for(int k=0;k<2;k++)
{
System.out.println("Introduzca el nombre del autor");
au1[k]=x.nextLine();
System.out.println("Introduzca la adscripcion del autor");
ads1[k]=x.nextLine();
}
y[i]=new deRevista(art,fec,au1[0],ads1[0],au1[1],ads1[1],rev,año,cod);
}
for(int i=0;i<2;i++)
System.out.println("Datos: "+y[i].ImprimirDatos());
//ARTICULO DE CONGRESO:
for(int i=2;i<4;i++)
{
System.out.println("Introduzca el nombre del articulo");
String art=x.nextLine();
System.out.println("Introduzca el nombre del congreso");
String rev=x.nextLine();
System.out.println("Introduzca el codigo ISBN");
int cod=x.nextInt();
System.out.println("Introduzca la fecha de publicacion");
x.nextLine();
String fec=x.nextLine();
for(int k=2;k<4;k++)
{
System.out.println("Introduzca el nombre del autor");
au1[k]=x.nextLine();
System.out.println("Introduzca la adscripcion del autor");
ads1[k]=x.nextLine();
}
y[i]=new deCongreso(art,fec,au1[2],ads1[2],au1[3],ads1[3],rev,cod);
}
for(int i=2;i<4;i++)
System.out.println("DATOS: " + y[i].ImprimirDatos());
}
}