A parent class has a default constructor which throws IOException. But as the sub class has no any defined constructors, the compiler creates a default one but
without the 'throws' clause. As parent's constructor throws a checked exception, it's needed to handle it correctly. You can do it by placing 'throws' clause in constructor definition or by using the 'try-catch' block. But created by the compiler default constructor does neither.
You can look at:
http://www.javaranch.com/ubb/Forum24/HTML/003480.html Some related discussion is there.