subschemaFinal Option

The subschemaFinal class and method option enables you to specify that a class or method can be extended or reimplemented in its local schema but not in a subschema. When applied to a class, there are no restrictions on the class in its local schema but the class cannot be subclassed in subschemas.

When applied to a method, there are no restrictions on the method in its local schema, but the method cannot be reimplemented anywhere in a subschema.

This option does not restrict methods and constants being added to subschema copies of the class.

The Define Class, Jade Method Definition, and External Method Definition dialogs provide the Subschema Final check box. As this check box is unchecked by default, classes and methods can be extended or reimplemented in the local schema and in subschemas unless you specify otherwise. (For details, see "Adding Classes to Your Schema", in Chapter 3, or "Defining and Compiling JADE Methods and Conditions", in Chapter 4.)

You can change this method option (for an existing method) from the editor pane, by adding or removing the subschemaFinal method option in the method signature and then recompiling that method.

As an example, consider the following situation.

Schema A
Class C1 - subschemaFinal
    Class C2 - subclass of C1 – inherits subschemaFinal from C1
        Class C3 - subclass of C2 – inherits subschemaFinal from C2

As the developer of schema A, you may want to specify that classes C1, C2, and C3 cannot be subclassed in a subschema. Making class C1 subschemaFinal accomplishes this, as classes C2 and C3 inherit this option from class C1.