What exactly is the difference between these?
Are there others I've not found yet...extends is for classes. When class A "extends" class B it gets to use all of class B's public and protected methods/properties as its own. A class can extend only one other class at a time (this doesn't mean the "other class" can't extend a third class - all classes are ultimately derived from stdObject by a chain of "extends").
implements is for interfaces. Interfaces don't contain any code, just method declarations. When class A "implements" interface I, it's making a promise to the compiler that it will implement whatever methods are listed in the interface (in return the compiler agrees to use instances wherever an object that uses that interface is required). A class can implement as many interfaces as you like.
Are there others I've not found yet...extends is for classes. When class A "extends" class B it gets to use all of class B's public and protected methods/properties as its own. A class can extend only one other class at a time (this doesn't mean the "other class" can't extend a third class - all classes are ultimately derived from stdObject by a chain of "extends").
implements is for interfaces. Interfaces don't contain any code, just method declarations. When class A "implements" interface I, it's making a promise to the compiler that it will implement whatever methods are listed in the interface (in return the compiler agrees to use instances wherever an object that uses that interface is required). A class can implement as many interfaces as you like.