Let B be a base class, E - a class extending B, and X be some random class that does not extend B nor E. By default all fields and methods in AS3 are declared
internal
, so if you did not provide a scope specifier for your method/field, it will be treated as internal
.Scope specifiers available in AS3:
public
methods and fields are visible to code anywhere (Both E and X have access to those).private
fields and methods are visible only within the class defining them (E has no access to anyprivate
fields or methods from B, nor does X)protected
fields and methods are visible to the class defining it and all subclasses (E has access toprotected
entities, independent of the package it belongs to, but X has no acces to them).internal methods and fields are accessible by all classes in the same package and can onlny be inherited by a class in the same package (E has access to
internal
only if E belongs to the same package as B, same applies for X.)
More detailed discussion on inheritance in ActionScript 3.0: here