ActionScript 3.0 also allows you to define interfaces. Interfaces allow you to separate the interface from the implementation, which enables greater application flexibility.
Much of what you learned about declaring classes applies to declaring interfaces as well. In fact, it’s easier to list the differences:
Interfaces use the interface
keyword rather than the class
keyword.
Interfaces cannot declare properties.
Interface methods declare the method signature but not the implementation.
Interfaces declare only the public
interface for implementing classes,
and therefore method signature declarations do not allow for
modifiers.
By convention, interface names start with an uppercase I
. The following is an example of an
interface:
package com.example { public interface IExample { function a():String; function b(one:String, two:uint):void; function get example():String; function set example(value:String):void; } }
In the preceding example, interface
says that any implementing class must
declare methods a()
and b()
using the specified signatures.
You can declare a class so that it implements an interface using the implements
keyword, following the class name or following the superclass name if
the class extends a superclass. The following example implements IExample
:
package com.example { import com.example.IExample; public class Example implements IExample { private var _example:String; public function get example():String { return _example; } public function set example(value:String):void { _example = value; } public function Example() { } public function a():String { return "a"; } public function b(one:String, two:uint):void { trace(one + " " + two); } } }
When a class implements an interface, the compiler verifies that it
implements all the required methods. If it doesn’t, the compiler throws an error. A class can
implement methods beyond those specified by an interface, but it must
always implement at least those methods. A class can also implement more
than one interface with a comma-delimited list of interfaces following the
implements
keyword.