Book Chapter

Chapter 6: 'Advanced Concepts in ABAP Objects'


Download chapter 6: 'Advanced Concepts in ABAP Objects'


Excerpted from the book 'ABAP Objects: ABAP Programming in SAP NetWeaver', ISBN 1592290795, Copyright 2007. Written permission from SAP PRESS

    Requires Free Membership to View

is required for all other uses. Copyright © 2007 SAP PRESS America. All rights reserved. Email: customer@sap-press.com. SAP PRESS America, 11300 Rockville Pike, Suite 1100, Rockville, MD 20852-3030, USA.






Chapter Excerpt:


6.3.2 Creating Interfaces

With regard to their declaration, interfaces in ABAP Objects play the same role as classes. Just like classes, interfaces are object types that reside in the namespace of all types. While a class describes all aspects of a class, an interface only describes a partial aspect. As mentioned above, standalone interfaces can be regarded as special abstract classes without implementation that can be used in multiple classes.

Accordingly, the declaration of a standalone interface hardly varies from the declaration of a class. As with classes, we distinguish global and local interfaces in the same way that we do global and local classes. Therefore, the same rules apply regarding their usability. Global interfaces can be used in any program if the package assignment of the program permits it. Local interfaces can only be used in the same program.


The syntax for declaring a local interface is:
INTERFACE intf.
   DATA ...
   CLASS-DATA ...
   METHODS ...
   CLASS-METHODS ...
   ...
ENDINTERFACE.

Basically, the declaration of an interface corresponds to the declaration part of a class, where instead of CLASS—ENDCLASS, you simply use INTERFACE—ENDINTERFACE. Interfaces can contain exactly the same components as classes. Unlike classes, however, interfaces don't need to be divided into different visibility sections because interface components are always integrated in the public visibility section of classes.

To create a global interface, use the Class Builder just as you would for global classes. In the Object Navigator, select Create · Class Library · Interface. In Transaction SE24, after selecting Create, select the Interface object type instead of Class.

Figure 6.7 shows the Class Builder for a global interface ZIF_DRIVE_ Class Builder OBJECT. You see the familiar user interface that you know from working with classes. When creating components, you need to specify the same input as you do for classes, except for the assignment to a visibility section. In the shown example, we created the same methods ACCELERATE and SHOW_SPEED as in ZCL_VEHICLE presented in Figure 4.7 in Chapter 4. The shown interface can therefore serve as an interface to objects that can be driven.

The Class Builder generates the corresponding ABAP statements in a program of the interface pool type, the source code of which can also be edited directly via Goto · Interface Section (see Figure 6.8). As in class pools, the addition PUBLIC identifies the interface as a global interface that can be used in all programs. Apart from the declaration of the global interface, an interface pool cannot contain any local type declarations except for the publication of type groups.

The essential difference between interfaces and classes is that there is no implementation part for an interface. Therefore, it is not necessary to add DEFINITION to INTERFACE. The methods of an interface are all abstract. They are fully declared, including their parameter interface, but not implemented in the interface. Like the subclasses that implement the abstract methods of their abstract superclasses, all classes that want to use an interface must implement its methods.

Chapter 6: 'Advanced Concepts in ABAP Objects'

Visit the SAP Press website for a detailed description and to learn how to purchase this title.

This was first published in July 2007

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: