INTERFACES - ABSTRACT, FINAL, DATA VALUES
Short Reference
ABAP Syntax INTERFACES intf
[ PARTIALLY IMPLEMENTED ]
{ {[ABSTRACT METHODS meth1 meth2 ... ]
[FINAL METHODS meth1 meth2 ... ]}
| [ALL METHODS {ABSTRACT|FINAL}] }
[DATA VALUES attr1 = val1 attr2 = val2 ...].
ABAP_ADDITIONS:
1 ... ABSTRACT METHODS meth1 meth2 ...
2 ... FINAL METHODS meth1 meth2 ...
3 ... ALL METHODS {ABSTRACT|FINAL}
4 ... DATA VALUES attr1 = val1 attr2 = val2 ...
What does it do? In the public
visibility area , the statement
INTERFACES implements the interface intf in the class.
Additions can also be defined to determine the properties of interface
components in the class.
All local or global interfaces visible at this position can be
specified for intf . The components of the interfaces become
public components of the class after the implementation. An interface
component called comp has the name intf~comp in the class,
where intf is the name of the interface and the character ~
is the interface component selector. A class must implement all
methods of the interface in its implementation part unless they are
declared as abstract. One exception are test classes in which a partial
implementation using the addition
PARTIALLY IMPLEMENTED is allowed.
Latest notes:
A class can implement any number of different interfaces. All of the
interfaces implemented by a class are of equal status. If one of the
interfaces intf implemented in a class is a composite, for
example, containing component interfaces, then these are implemented in
the class irrespective of their nesting hierarchy like individual
interfaces and their components are not called using the name
intf
but using the name of their component interface. Multiple use of the
interface component selection in a name (such as intf1~intf2~comp
) is generally not supported.
Each interface appears only once in a class and every interface
component comp is always clearly accessible using the
intf~comp . When the components of an interface, if they are
components of more than one interface, appear to be used more than once
in a class, even they appear only once.
If a class implements in its implementation part an intf~...
method of a global interface intf that is implemented with
INTERFACES and if it is not declared in the interface, then a warning
is displayed in the syntax check. This type of method implementation is
dead coding that cannot be executed and is to be removed. Classes become
unusable with a syntax error if methods were later deleted from an
implemented global interface, and which were implemented without class
and had no values. An actual syntax error results when local interfaces
are used.
ABAP_ADDITION_1 ... ABSTRACT METHODS meth1 meth2 ...
ABAP_ADDITION_2 ... FINAL METHODS meth1 meth2 ...
What does it do? Using the additions ABSTRACT METHODS and FINAL
METHODS , the individual instance methods meth of the interface
are made either abstract or final in the class to be implemented. The
same rules apply as for the additions ABSTRACT and FINAL
of the METHODS statement. In particular, the
whole class must be abstract if an interface method is made abstract and
no interface methods can be executed at the same time after ABSTRACT
METHODS and FINAL METHODS .
ABAP_ADDITION_3 ... ALL METHODS {ABSTRACT|FINAL}
What does it do? Instead of making individual interface methods in the
class abstract or final it is possible, using the addition ALL
METHODS {ABSTRACT|FINAL} , to make all interface methods either
abstract or final.
ABAP_ADDITION_4 ... DATA VALUES attr1 = val1 attr2 = val2 ...
What does it do? Using the addition DATA VALUES , initial values
can be assigned to individual attributes attr . For instance
attributes, this addition fulfills the same functions as the addition
VALUE of the statement DATA for
attributes in its own class. Constants declared in the interface by the
statement CONSTANTS cannot be specified
after the addition DATA VALUES . Furthermore, it is not currently
possible to specify alias names .
Latest notes: To specify values for the interface attributes of the
component interfaces of a
compound interface, the component interface must currently be directly
bound again using the INTERFACES statement.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved