A command is a single action performed by the robot. Commands usually require at least one subsystem which they act with. After being started, a command runs for a period of time until either it is finished performing its task or it is interrupted. Interruptions can occur either when a command is canceled or when another command that requires the same command is run.
Commands can require a subsystem using the requires() method of commands. When a command requires a subsystem, it claims exclusive control over that subsystem and will interrupt any other command that requires the same subsystem. This only works if all your commands properly require the subsystems that they use.
Parameters are variables that are passed into a command to be used later. By adding parameters to your command, the parameters are defined in your command class as a variable of the same type. The arguments passed in by the parameters can then be used by methods inside of the command.