hei. the language is java. i want to extend this class which the constructor has parameters.
this is the main class
public class CAnimatedSprite { public CAnimatedSprite(String pFn, int pWidth, int pHeight) { } }
this is the child class
public class CMainCharacter extends CAnimatedSprite { //public void CMainCharacter:CAnimatedSprite(String pFn, int pWidth, int pHeight) { //} }
how do i write the correct syntax? and the error is "constructor cannot be applied to given types"
In Java, classes may extend only one superclass. Classes that do not specify a superclass with extends automatically inherit from java. lang. Object .
A parameterized constructor accepts parameters with which you can initialize the instance variables. Using parameterized constructor, you can initialize the class variables dynamically at the time of instantiating the class with distinct values.
You can define any arguments you need for your constructor, but it is necessary to call one constructor of the super class as the first line of your own constructor. This can be done using super()
or 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 } }
The first statement of your constructor must be a call to superclass constructor. The syntax is:
super(pFn, pWidth, pHeight);
It is up to you to decide, whether you want constructor of your class to have same parameters and just pass them to superclass constructor:
public CMainCharacter(String pFn, int pWidth, int pHeight) { super(pFn, pWidth, pHeight); }
or pass something else, like:
public CMainCharacter() { super("", 7, 11); }
And don't specify return type for constructors. It's illegal.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With