Lesson 18 - Abstract class, comparing and operators in Kotlin
In the previous lesson, Type casting and object hierarchy in Kotlin, we learned about type casting and created an object hierarchy with a common ancestor in Kotlin. In today's tutorial, we're going to continue with that project.
Abstract class
An abstract class is a class whose instance doesn't make sense. Mainly
because it's too vague, e.g. our Animal
class. The point is to call
on specific Animal
descendants, e.g. a dog, so we won't actually
instantiate the Animal
class directly ever. In
other words, it's better to prevent any instantiation of the class overall. To
do that, we simply add the abstract
modifier before the
Animal
class:
abstract class Animal(var weight: Int) { // . . .
The program works the same as before, but if we try to create an instance of
the Animal
class, we'll get an error:
// this code won't work animals += Animal(10)
Other than preventing instantiation, abstract classes can do several other things
...End of the preview...

Premium article
ict.social is a large database made up of manuals and tutorials, whose main goal is to provide high-quality IT education to everyone. We started out in the Czech republic, where we display roughly a million articles per month and receive plenty of gratitude from our users. Thanks to our successful establishment, we are now bringing these articles to the rest of the world.
Although we are trying to keep our content free of charge, maintaining the site is a huge effort for everyone involved. Therefore, some content (exercises and more advanced material) costs network points. Don't worry, they're really cheap :)
Article description
Requested article covers this content:
This tutorial explains abstract classes in Kotlin. We'll learn about interfaces, implement our own comparing with Comparable, and overload an operator.
Buying this article gives you unlimited access to it forever. You will learn some more and help us keep giving our site maintenance which helps you and others get better futures. It's a win-win.
This article is licensed: Premium, by buying this article, you agree with the terms of use.
You gain points by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.
You can get points immediately using:
![]() |
![]() |
![]() |
Credit card | SMS | Wire transfer |