# Behavior

Behavior inherits from Object and defines instance variables superclass, layout. It has subclasses Class and Metaclass.

Behaviors are objects which can be the class of other objects. Many of the informational fields present in the IDE are stripped out at runtime, leaving only the following two instance variables:
superclass - the superclass of this behavior, or nil
layout - an integer encoding the layout of instances of this behavior
These instance variables may be modified at runtime but can have unpredictable effects if you are not careful.

## Methods defined in Behavior:

### Methods for accessing:

- layout
- name
  Overridden by subclasses.
- superclass

### Methods for instance creation:

- basicNew
- basicNew: size
- new
- new: size

### Methods for predicates:

- canUnderstand: selector
- implements: selector
  Does the receiver implement this selector directly (i.e., inherited implementations don't count)?

### Methods for printing:

- printOn: stream

Pocket Smalltalk Documentation