JavaRush
AI Academy
new
Promotion
Learning
Courses
Tasks
Quizzes
Games
Help
Schedule of nudges
Internship
Community
Users
Forum
Chat
Articles
Success stories
Activities
Reviews
Subscriptions
Light theme

Lectures

  • Reviews
  • About us
  • CS50
Start
Start learning
Start learning
  • My progress
  • Courses
  • Quest map
  • Lectures
  • Inheritance in Kotlin: final by default and the : Base (...) syntax

    Kotlin SELF
    35 level,0 lecture
    We’ll go over the basic inheritance rules in Kotlin: why classes and members are final by default, how to explicitly allow extension with open, how the : Base (...) syntax works with a mandatory base-class constructor call, what limitations hierarchies have (one base class, data class nuances), and which typical mistakes beginners run into most often.
    Open
  • override and protected in Kotlin

    Kotlin SELF
    35 level,1 lecture
    We break down why Kotlin requires explicit overriding via open and override, how to correctly override methods and properties ( open fun, open val/ var), why the val → var trick is allowed, what final override means, and how the protected visibility modifier helps give subclasses access to internal details without turning your API into a “showcase of the internal kitchen”.
    Open
  • super and initialization order: extending base logic

    Kotlin SELF
    35 level,2 lecture
    We break down how to correctly extend behavior when inheriting in Kotlin: when to call super inside override, how to reuse base logic in methods and property getters, and why the initialization order ( init blocks and properties) affects program correctness. We also discuss the danger of calling open members from constructors/initialization and show safe alternatives.
    Open
  • Getting to Know Polymorphism

    Kotlin SELF
    35 level,3 lecture
    We break down polymorphism in Kotlin through a base type and dynamic behavior: how the open + override combo works, why a variable of type Base can store an object of Child, and how this helps avoid the explosion of when/ is. In practice, we will assemble a report as a list List<ReportLine> with a single method render() and print it with one loop.
    Open
  • Overloading vs overriding: how not to mix them up

    Kotlin SELF
    35 level,4 lecture
    We break down two Kotlin mechanisms that sound similar but are fundamentally different: overloading (overload—selection by parameters at compile time) and overriding (override—selection of an implementation at runtime). Using examples with open/ override and polymorphism, we show the main trap: “meant to override—accidentally overloaded”, and we also reinforce the differences with a table and a list of common mistakes.
    Open
Learn
  • Registration
  • Java course
  • Help with tasks
  • Pricing
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success stories
  • Activities
Company
  • About us
  • Contacts
  • Reviews
  • FAQ
  • Support
JavaRushJavaRush — is an interactive online course for learning Java programming from scratch. It contains 1200 practical tasks with one-click solution checking, the necessary minimum of theory on Java basics, and motivating features that help you complete the course: games, quizzes, interesting projects and articles on effective learning and the career of a Java developer.
Follow us
Язык интерфейса
Русский
English
Українська
"Programmers are not born" © 2026 JavaRush
MastercardVisa
"Programmers are not born" © 2026 JavaRush