ADVERTISEMENT
ADVERTISEMENT

Kotlin program | Example of Resolving Overriding Conflicts in Inheritance

Kotlin | Resolving Overriding Conflicts in Inheritance: Here, we are implementing a Kotlin program to demonstrate the example of resolving overriding conflicts in inheritance.
Submitted by IncludeHelp, on June 08, 2020

Overriding Conflicts in Inheritance

  • It may appear, we inherit more than one implementation of the same method.
  • Need to implement all the methods which we have inherited from multiple interfaces.

Resolving Overriding Conflicts in Inheritance in Kotlin

package com.includehelp

// declare interface
interface One{
    // abstract function
    fun myName()

    // function with implementation
    fun sayHello(){
        println("Hello, 'From Interface One' ")
    }
}

interface Two{
    // function with implementation
    fun sayHello(){
        println("Hello, 'From Interface Two' ")
    }

    // function with implementation
    fun myName(){
        println("My Name is  Interface 'Two'")
    }
}

// class implementing interface
class Three:One{
    // override interface abstract method
    override fun myName() {
        println("My Name is Class Three")
    }
}

// class implementing more then one interfaces
class Four:One,Two{

    // need to implement all the methods 
    // which we have inherited from multiple interfaces
    override fun sayHello() {
        // Both interface have sayHello implementation in interfaces,
        // so explicitly define Interface name in super to call, 
        // specific implementation from class
        super<One>.sayHello()
        super<Two>.sayHello()
        println("Hello, From Class 'Four' ")
    }

    // need to implement all the methods 
    // which we have inherited from multiple interfaces
    override fun myName() {
        // called super type implementation of method,
        // only interface two have implementation of this method, 
        // so need to explicitly define interface name
        super.myName()

        println("My Name is Class Four")
    }

}

// Main function, Entry point of program
fun main(){
    // create class instance
    val four = Four()
    // call methods
    four.myName()

    // call methods
    four.sayHello()
}

Output:

My Name is  Interface 'Two'
My Name is Class Four
Hello, 'From Interface One' 
Hello, 'From Interface Two' 
Hello, From Class 'Four'
ADVERTISEMENT



ADVERTISEMENT



Comments and Discussions


ADVERTISEMENT

ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.