接口Advanced_Compution:
package com.init.demo.`interface` interface Advanced_Compution{ //高级计算:乘方 up-立方 fun pow(up:Int) }
接口Common_Compution:
package com.init.demo.`interface` /** * Kotlin中 只允许继承一个抽象类或普通类 * 不允许类多继承,但允许接口多实现 * 在接口中,自身的定义和方法、内部属性都默认添加open修饰符 * Kotlin接口中,已经实现的方法,不必需要在实现类中强制实现 * 不进行方法覆盖,实现类中会调用原来接口中实现的方法 * 所以,接口中的方法只进行申明,没有进行实现,那么必须在接口实现类中强制实现 */ interface Common_Compution{ fun add() fun subtract() fun multiply() fun divide() fun printAllCommonResult(){ print("Add:");add() print("Subtract:");subtract() print("Multiply:");multiply() print("Divide:");divide() } }
实现类:
package com.init.demo.interfaceimpl import com.init.demo.`interface`.Advanced_Compution import com.init.demo.`interface`.Common_Compution /** * 接口没有默认构造器 * 所以实现接口时不需要在接口名称后添加括号 * 实现接口中定义的方法,需要在重写的方法前面添加修饰符override */ class Compution(num1: Double, num2: Double) : Common_Compution, Advanced_Compution { override fun pow(up: Int) { // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. var num1_Result = 1.0 var num2_Result = 1.0 for (i in 1..up) { num1_Result *= num1 num2_Result *= num2 } println("num1_Result=${num1_Result},num2_Result=${num2_Result}") } val num1 = num1 val num2 = num2 override fun divide() { // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. println(num1 / num2) } override fun multiply() { // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. println(num1 * num2) } override fun subtract() { // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. println(num1 - num2) } override fun add() { // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. println(num1 + num2) } } fun main(args: Array<String>) { val num = Compution(1.5, 2.0) num.printAllCommonResult() num.pow(3) /* 输出: Add:3.5 Subtract:-0.5 Multiply:3.0 Divide:0.75 num1_Result=3.375,num2_Result=8.0*/ }