Hi, Basically if you want to extend or Add more functionality to the standardcontroller methods (save, cancel, etc). One example i can give is that if you are building a VF Page that can save multiple child records of a parent record (standard contrller). you will have to have an extension controller that creates/and saves that child records.
public class myControllerExtension {
private final Account acct;
// The extension constructor initializes the private member
// variable acct by using the getRecord method from the standard
// controller.
public myControllerExtension(ApexPages.StandardController stdController) {
this.acct = (Account)stdController.getRecord();
}
public String getGreeting() {
return 'Hello ' + acct.name + ' (' + acct.id + ')';
}
}
Basically if you want to extend or Add more functionality to the standardcontroller methods (save, cancel, etc). One example i can give is that if you are building a VF Page that can save multiple child records of a parent record (standard contrller). you will have to have an extension controller that creates/and saves that child records.
A controller extension is any Apex class containing a constructor that takes a single argument of typeApexPages.StandardController or CustomControllerName, where CustomControllerName is the name of a custom controller you want to extend
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_extension.htm
What are Custom Controllers and Controller Extensions?
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_def.htm
Considerations for Creating Custom Controllers and Controller Extensions
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_considerations.htm
http://salesforce.stackexchange.com/questions/4041/difference-between-controller-and-extensions
http://www.salesforcetutorial.com/custom-controllers-controller-extensions/