When i try to create a subclass called Villager under my superclass Pedestrian it says "constructor Pedestrian in class Pedestrian cannot be applied to given types" and i dont know whats the issue
Heres my code for both the superclass and subclass:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * A Pedestrian that tries to walk across the street */ public abstract class Pedestrian extends SuperSmoothMover { protected double speed; protected double maxSpeed; protected int direction; // direction is always -1 or 1, for moving down or up, respectively protected boolean awake; public Pedestrian( int direction) { // choose a random speed maxSpeed = Math.random() * 2 + 1 ; speed = maxSpeed; // start as awake awake = true ; this .direction = direction; } /** * Act - do whatever the Pedestrian wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ /** * Method to cause this Pedestrian to become knocked down - stop moving, turn onto side */ public void knockDown () { speed = 0 ; setRotation ( 90 ); awake = false ; } /** * Method to allow a downed Pedestrian to be healed */ public void healMe () { speed = maxSpeed; setRotation ( 0 ); awake = true ; } public boolean isAwake () { return awake; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Villager here. * * @author (your name) * @version (a version number or a date) */ public class Villager extends Pedestrian { /** * Act - do whatever the Villager wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { // If there is a v if (awake){ if (getOneObjectAtOffset( 0 , ( int )(direction * getImage().getHeight()/ 2 + ( int )(direction * speed)), Vehicle. class ) == null ){ setLocation (getX(), getY() + ( int )(speed*direction)); } if (direction == - 1 && getY() < 100 ){ getWorld().removeObject( this ); } else if (direction == 1 && getY() > 550 ){ getWorld().removeObject( this ); } } } } |