Inheritance

Abstract

Overview of multiple inheritance and circular inheritance.

A data template can be based on any number of data templates, not just one. Occasionally, more than one inherited template contains the same field or field section. In the case of multiple inheritance, the UI merges these fields or field sections to prevent duplication.

Note

If a data template inherits from a single data template more than once, Sitecore ignores all but the first occurrence of that base template.

If a data template is based upon itself, either directly or indirectly, this is referred to as circular inheritance. Circular inheritance causes severe issues.

The symptoms include:

  • The system becomes unresponsive, especially when working with data templates.

  • ASP.NET raises application errors.

  • Log entries indicate circular template inheritance detected.

Circular template inheritance often occurs when developers modify the base templates associated with the Standard template or its base templates. Avoid making modifications to the default templates provided with the system. Aside from the risk of circular inheritance, modifications to templates under the /Sitecore/Templates/System branch could complicate the process of upgrading Sitecore or raise other challenges.

If any template does not explicitly inherit from another template, that template implicitly inherits from Sitecore’s Standard template. The Standard template inherits from a number of templates defined under /Sitecore/Templates/System/Templates/Sections, each defining a section of the Standard template.