Aspects
- Aspects are the basic units for implementing aspect-oriented crosscutting concerns.
- Aspects can include data members and methods.
- Aspects can have access specifications
- Aspects can declare themselves to be abstract
- Aspects can extend classes and abstract aspects, as well as implement interfaces.
- Aspects can be embedded inside classed and interfaces as nested aspects.
- Aspects cannot be directly instantiated.
- Aspects cannot inherit from concrete aspects.
- Aspects can be marked as privileged. This gives them access to the private members of the classes they are crosscutting.