---
schema_version: "1"
id: 93d5c0c2aa526c6918d8d07f67fcea8dbdc9000364dd9a4d06d52f1b81a9d76a
title: Abstract Components
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/platform/aura-platform/guides/aura/oo/oo-abstract-cmp.md
canonical_url: https://developer.salesforce.com/docs/platform/aura-platform/guide/oo-abstract-cmp.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 769eb058a4a1767450cd8c7acb1914b3e5317260357fef607c553c3710d143ec
products:
  - Lightning Aura Components Developer Guide
  - Platform Developer Content
---

# Abstract Components

Object-oriented languages, such as Java, support the concept of an abstract class that provides a partial implementation for an object but leaves the remaining implementation to concrete sub-classes. An abstract class in Java can't be instantiated directly, but a non-abstract subclass can.

Similarly, the Aura Components programming model supports the concept of abstract components that have a partial implementation but leave the remaining implementation to concrete sub-components.

To use an abstract component, you must extend it and fill out the remaining implementation. An abstract component can't be used directly in markup.

The `<aura:component>` tag has a boolean `abstract` attribute. Set `abstract="true"` to make the component abstract.

**See Also**  


-   [Interfaces](https://developer.salesforce.com/docs/platform/aura-platform/guide/oo-interfaces.md)

