class arijit
{
public static void main(String args[])
{
System.out.println(\"Base class main\");
amit ab=new amit(); //how is it possible as the sub class object a
When you compile your program two .class files are formed,namely arijit.class and amit.class.
So when your program is being interpreted ,interpreter knows about both the .class files and hence you can create Objects like that.