Given this code:

Java Code:
package generics;
import java.util.ArrayList;
import java.util.List;
public class Ques04 {
	public static void main(String[] args) {
		List<? extends Instrument> allInstruments = new ArrayList<Instrument>(); 
		// -->X
		allInstruments.add(new Guitar());
		allInstruments.add(new Violin());
	}
}
interface Instrument {
	public void play();
}
class Guitar implements Instrument {
	public void play(){
		System.out.println("Playing Guitar.");
	}
}
class Violin implements Instrument {
	public void play(){
		System.out.println("Playing Violin.");
	}
}
Please explain this affirmation:
The only possible element that can be added to the list 'allInstruments' is 'null'.

Source: SCJP 1.5,SCJP 5.0 Generics Mock Exam Questions - 5