Interfaces

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.

Get Programming Flex 3 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.