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
public class TestClass {

	private class A implements Comparable<A>
	{
		public int compareTo(A o) 
		{
			// TODO Auto-generated method stub
			return 0;
		}
	};
	
	private class B extends A {};

	private class C implements Comparable<B>
	{

		public int compareTo(B o) 
		{
			// TODO Auto-generated method stub
			return 0;
		}
	};
	
	private <T extends Comparable<? super T>> void aMethod(T pouet) 
	{
		// ...
	}
	
	private void testMethod()
	{
		aMethod(new A()); // compiles 
		aMethod(new B()); // compiles 
		aMethod(new C()); // does not 
	}
	
}