If I have a class ABC for example. What's the different between these calls?

Code:
class ABC{

  ABC(){


  }

}
ABC var1;

ABC var2();

ABC var3 = new ABC();
I know var3 gets a pointer to the class ABC in heap. What about var1 and var2?


Thanks.