tipos - java, extendiendo clase con el constructor de clase principal tiene parametro
tipos de constructores en java (3)
hei el lenguaje es java Quiero extender esta clase que el constructor tiene parámetros.
esta es la clase principal
public class CAnimatedSprite {
public CAnimatedSprite(String pFn, int pWidth, int pHeight) {
}
}
esta es la clase infantil
public class CMainCharacter extends CAnimatedSprite {
//public void CMainCharacter:CAnimatedSprite(String pFn, int pWidth, int pHeight) {
//}
}
¿Cómo escribo la sintaxis correcta? y el error es "el constructor no se puede aplicar a tipos dados"
La primera declaración de su constructor debe ser una llamada al constructor de superclase. La sintaxis es:
super(pFn, pWidth, pHeight);
Depende de usted decidir si desea que el constructor de su clase tenga los mismos parámetros y simplemente pasarlos al constructor de superclase:
public CMainCharacter(String pFn, int pWidth, int pHeight) {
super(pFn, pWidth, pHeight);
}
o pasar algo más, como
public CMainCharacter() {
super("", 7, 11);
}
Y no especifique el tipo de retorno para los constructores . Es ilegal.
Puede definir cualquier argumento que necesite para su constructor, pero es necesario llamar a un constructor de la superclase como la primera línea de su propio constructor. Esto se puede hacer usando super()
o super(arguments)
.
public class CMainCharacter extends CAnimatedSprite {
public CMainCharacter() {
super("your pFn value here", 0, 0);
//do whatever you want to do in your constructor here
}
public CMainCharacter(String pFn, int pWidth, int pHeight) {
super(pFn, pWidth, pHeight);
//do whatever you want to do in your constructor here
}
}
public class CAnimatedSprite {
public CAnimatedSprite(String pFn, int pWidth, int pHeight) {
}
}
public class CMainCharacter extends CAnimatedSprite {
// If you want your second constructor to have the same args
public CMainCharacter(String pFn, int pWidth, int pHeight) {
super(pFn, pWidth, pHeight);
}
}