Extends Subclassing means if your creating a class B that Extend the class A, B can be treated like an A, and inherit method and attributes. A's methods and attributes become part of your new class B.
Requires It's just a loading mecanism that assure that some required class are loaded before you can use it. For exemple, if you need to display a message box, you will call :
Ext.Msg.confirm("Confirmation", "Do you want to add " + value + " to the database ?");
Ext.Msg is not a part of your class, you're basically just telling the system to display a Popup. But if you do that when your app launch, before the class Ext.Msg has been loaded, well it will fail.
To summary :
Extends => when you need to become a class X
Requires => when you need to use a class X