Hi,
When ever you do any aithmatic operation Result Types of Arithmetic Operations are converted to the bigger primitive.
say, x + y = r
Here operand of the arithmatic operation x & y;
Now the result will be the primitive type among x & y which ever is the largest;
In your example,
class trythis {static final short s1=10;public static void main(String args[]) {short s2;s2 = s1 + 11;System.out.println(s2);}}
The operand of arithmatic operation is short s1 & int 11;
so the result will be int type, so you need to explicitly convert int to short.
so you need to write
s2 = (short)(s1 + 11);
For details,
visit this URL
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arithmetic.html