Private members are only accessible from within a class. A Stack's representation, such as a list or array, will usually be private. A Stack's representation could be declared protected allowing subclass access. Eiffel 3.0 allows exporting access to specific classes. All Smalltalk instance variables can be accessed by subclasses, helping with abstract classes and overriding.
Methods can only access the receiver in per-object protection.
This supports a subtyping model, as any object other than the receiver is only satisfying an abstract type interface, whereby no method or object structure can be inferred in the general case.