Kotlin program | Example of abstract class

Kotlin | Abstract Class Example: Here, we are implementing a Kotlin program to demonstrate the example of abstract class.
Submitted by IncludeHelp, on June 03, 2020

Abstract Class

  • Use the abstract keyword to mark the class as an abstract class.
  • An abstract class can't be Instantiated.but they can be subclassed.
  • An abstract class is by default inheritable not need to mark with 'open'.
  • Abstract members( (properties and function ) is by default 'open'
  • Members (properties and function ) of an abstract class can be abstract or non-abstract, to mark them abstract explicitly use abstract keyword
  • An abstract member does not have an implementation in its class.
  • If any members of the class is abstract then the class must be declared as abstract class.

Program for abstract class in Kotlin

package com.includehelp

//Declare abstract class
abstract class PaintSheet {
    //abstract property without value
    abstract var value:Int

    //Init Block of Base Class
    init {
        println("Init Block, Base Class")
    }

    //marked function with 'open' to make overridable
    open fun paint(){
        println("Paint Method , Base Class Implementation")
    }

    //final method, so cant be override in subclass
    fun sketch(){
        println("Sketch Method , From Base Class!")
    }

    //Abstract method, without implementation
    abstract fun draw()
}

//declare sub class extendign super class
class Painting : PaintSheet() {

    //override abstract property in subclass
    override var value=10

    //Init Block , Sub class
    init {
        println("Init Block, Child Class")

        //Call Super class implementation of Paint method
        super.paint()
    }

    //implement base class abstract method
    override fun draw(){
        println("draw Method , override in Child Class")
    }

    //Override method, provide different implementation
    override fun paint(){
        println("Paint Method , Child Class Implementation")
    }

    //Declare Method to print Property value
    fun printValue(){
        println("Value : $value")
    }
}

//Main Function, Entry Point of Program
fun main(args:Array<String>){
    //create instance of Painting class (Child class)
    val paint = Painting()

    //call draw method
    paint.draw()

    //call paint method
    paint.paint()

    //call sketch method
    paint.sketch()

    //Call printValue method
    paint.printValue()
}

Output:

Init Block, Base Class
Init Block, Child Class
Paint Method , Base Class Implementation
draw Method , override in Child Class
Paint Method , Child Class Implementation
Sketch Method , From Base Class!
Value : 10


Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.