You could also choose to have cans, lwork and bksread as instance variables in the superclass Rewards with setter methods, then calculate wouldn't have to have them as paramteres.
In the code you wrote points wasn't used even though you sent it in as a parameter to setPoints, you then overwrote the value it contained with 0, as you sat the PARAMETER points equal to cans * etc. but these variables are all 0. You never sat the instance variable points equal to anything i.e. this.points, so even if cans, etc, had contained values other than 0, when you called calculate you still would have received 0 as a result.
The toString method in each class i unneccessary as it just calls the super, this will be done anyway, if you don't provide a toString method.
Finally when you write new...then it has to be followed by a class name, i.e. Boy or Girl. Rewards Boy doesn't make any sense. A boy object is also a Rewards object, because Boy is a subclass of Rewards.