C# in Simple Terms - Inheritance and Polymorphism

C# in Simple Terms - Inheritance and Polymorphism

Now that we've discussed most of the basics we need for a C# program, let's talk about two concepts that are central to how C# (and indeed, all object-oriented programming languages) work: inheritance and polymorphism.

Now that we've discussed most of the basics we need for a C## program, let's talk about two concepts that are central to how C## (and indeed, all object-oriented programming languages) work: inheritance and polymorphism.

A closeup of a set of $100 bills being counted.Wrong kind of inheritance! But this one is pretty nice... Photo by Pepi Stojanovski / Unsplash

The Sample Project


Contribute to exceptionnotfound/CSharpInSimpleTerms development by creating an account on GitHub.exceptionnotfound


Projects for this post: 9Inheritance and 9Polymorphism


Inheritance allows a class to reuse the properties, methods, and behavior of another class, and to extend or modify that behavior.

The class which implements the original properties or methods and will be inherited from is called the base class; the class which inherits from the base class is called the derived class. A derived class inherits from a base class.

"Is A" and "Is A Kind Of"

When talking about inheritance, we normally think of the derived classes having an "is a" or "is a kind of" relationship with the base class.

For example, a bee is an insect, a Toyota Corolla is a car, and a dresser is a kind of furniture. In these examples, Insect, Car, and Furniture are the base classes, while Bee, Toyota Corolla, and Dresser are the derived classes.

public class Insect { /*...*/ }
public class Bee : Insect { /*...*/ }

public class Car { /*...*/ }
public class ToyotaCorolla : Car { /*...*/ }

public class Furniture { /*...*/ }
public class Dresser : Furniture { /*...*/ }

In C#, we specify that an object inherits from another object using the : operator, as shown above.

c# in simple terms c++

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

C# in Simple Terms - Operators

Let's continue our C# in Simple Terms series with one of the basic parts of any line of code: the operators.

C# in Simple Terms - Structs and Enums

Now that we understand a little more about classes and previously learned the difference between value types and reference types, it's time to explore some more specialized C# types. In today's edition of C# in Simple Terms, let's explore two useful value types: structs and enums.

C# in Simple Terms - Namespaces

All code needs some kind of organization, and the most basic way to provide that organization in C# programs is through the use of namespaces.

Introducing C# in Simple Terms!

In the past, we have used mega-series to tackle big subjects such as design patterns, anti-patterns, and sorting algorithms. In this series, we're going back to basics to discover, learn, and teach the programming language we all know and love: C#!

C# in Simple Terms - Code Blocks, Basic Statements, and Loops

In this article, the latest of our C# in Simple Terms series, we're going to discuss how to control the flow of execution in a C# program. This means we will answer the question, "how does the code know what to do next?"