# Abstract Class

A class that cannot be created directly, but must be inherited.

## What is an **Abstract Class**?

An **abstract class** is a class that you cannot 
create an instance of. It is a class that you *must extend*
in order to use it. An abstract class does not yet
have enough details to be useful. 

Abstract classes define some data and functionality
that all child classes have in common.

Abstract classes are one way to introduce polymorphism 
into your project.

```csharp
public abstract class Building
{
    // variables and functions here
}
```

Level: Journeyman · [More OOP terms at this level](https://www.ask-codey.com/glossary/subjects/oop/journeyman)

Updated: October 12, 2026

Source: https://www.ask-codey.com/glossary/abstract-class
