Kotlin接口:方法

接口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*/
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值