This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
OO stems from the things you have mentioned. A class is a model or a blueprint for an object, so when it is built it takes on the characteristics of that class. Subclasses further take on all functionality or characteristics of the super or parent class whilst adding more functionality specific to its own needs. i.e: when i bulid an instance of the subclass - look at the parent - build it and add the extras in the subclass. Non-subclasses im not too sure about, but overloading refers to enabling multiple ways for a model(class, method) to be used, usually through inheritance(parent and subclasses). Look at the tutorials! Cheers James ps. have fun