Class to Represent Inheritance (Extension) Relations


An object from this class represents a single ‘is’ relationship; lists of these objects are used to represent all the extensions (superclasses) and subclasses for a given class. The object contains information about how the relation is defined and methods to coerce, test, and replace correspondingly.

Objects from the Class

Objects from this class are generated by setIs, from direct calls and from the contains= information in a call to setClass, and from class unions created by setClassUnion. In the last case, the information is stored in defining the subclasses of the union class (allowing unions to contain sealed classes).


subClass, superClass:

The classes being extended: corresponding to the from, and to arguments to setIs.


The package to which that class belongs.


A function to carry out the as() computation implied by the relation. Note that these functions should not be used directly. They only deal with the strict=TRUE calls to the as function, with the full method constructed from this mechanically.


The function that would test whether the relation holds. Except for explicitly specified test arguments to setIs, this function is trivial.


The method used to implement as(x, Class) <- value.


A "logical" flag, TRUE if this is a simple relation, either because one class is contained in the definition of another, or because a class has been explicitly stated to extend a virtual class. For simple extensions, the three methods are generated automatically.


If this relation has been constructed transitively, the first intermediate class from the subclass.


A "logical" flag, TRUE if the extended class is in fact the data part of the subclass. In this case the extended class is a basic class (i.e., a type).


The distance between the two classes, 1 for directly contained classes, plus the number of generations between otherwise.


No methods defined with class "SClassExtension" in the signature.

See Also

is, as, and the classRepresentation class.

Want to suggest features or report bugs for Use the GitHub issue tracker.

comments powered by Disqus