Koltin10.抽象方法

MainActivity.kt

package com.example.a02handler

import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import java.lang.ref.WeakReference
import java.math.BigInteger
import java.util.*

class MainActivity : AppCompatActivity() {

    private lateinit var show: ImageView
    enum class week{
        星期一,星期二,星期三,星期四,星期五,星期六,星期日
    }

    class MyHandler(private val activity: WeakReference<MainActivity>) : Handler(){
        private var  imageIds = intArrayOf(R.drawable.java, R.drawable.javaee, R.drawable.ajax, R.drawable.android,
                R.drawable.swift)
        private var currentImageId = 0
        override fun handleMessage(msg: Message) {
            if (msg.what == 0x1211){
                activity.get()?.show?.setImageResource(
                        imageIds[currentImageId++ % imageIds.size]
                )
            }
        }
    }

    val  myHandler = MyHandler(WeakReference(this))
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

//        var result = add(3, 5)
//        test()//函数
//        test1()//类
//        test2()//继承
        test3(); //抽象方法
//        test4();

        show = findViewById(R.id.show);
        Timer().schedule(object : TimerTask(){
            override fun run() {
                myHandler.sendEmptyMessage(0x1211)
            }
        }, 0, 1200)
    }

    fun test4() {
        var intman = IntMan()
        println(week.星期二.ordinal)
    }

    /**
     * 抽象方法
     */
    fun test3() {
        var man = Man("男人")
        man.eat()
        man.pee()
        var man2 = Man("男人2")
        man2.eat()
        man2.pee()
        var man3 = Man("男人3")
        man3.eat()
        man3.pee()
        var woman = Wonman("女人")
        woman.eat()
        woman.pee()
        var woman2 = Wonman("女人2")
        woman2.eat()
        woman2.pee()
        var woman3 = Wonman("女人3")
        woman3.eat()
        woman3.pee()

        var humList = listOf<Human>(man, man2, man3, woman, woman2, woman3)
        for (h in humList) {
            h.pee()
        }
    }

    /**
     * 继承
     */
    fun test2() {
        var son = Son()
        println("son's charator ${son.chactor}")
        son.action()
    }

    /**
     * 对象
     */
    fun test1() {
        var result = fact(BigInteger("100"))
        var react = React(20, 10)
        println("gao===:${react.height}")
        println("kuan===:${react.width}")
        react.closeDoor()
        react.selecteMode(1)
        react.start()
//        println("result=====" + result)
    }

    private fun fact(num:BigInteger):BigInteger{
        return if (num == BigInteger.ONE) {
            BigInteger.ONE
        } else{
            num*fact(num - BigInteger.ONE)
        }
    }

    private fun add(a: Int, y: Int) : Int = a + y

    private fun test() {
        val a: Int = 10000
        println("???" + (a === a)) // true,值相等,对象地址相等

        //经过了装箱,创建了两个不同的对象
        val boxedA: Int? = a
        val anotherBoxedA: Int? = a

        //虽然经过了装箱,但是值是相等的,都是10000
        println(boxedA === anotherBoxedA) //  false,值相等,对象地址不一样
        println(boxedA == anotherBoxedA) // true,值相等
    }


}

Main.kt

package com.example.a02handler

class Man(name: String): Human(name){
    override fun eat() {
        println("${name} this is man eat for food")
    }

    override fun pee() {
        println("${name}man is pee")
    }
}

Woman.kt

package com.example.a02handler

class Wonman(name: String) :Human(name) {

    override fun eat() {
        println("${name} this is woman is eating foof")
    }

    override fun pee() {
        println("${name} wonman pee====")
    }
}

Human.kt

package com.example.a02handler

abstract class Human (var name:String){
    abstract fun eat()
    abstract fun pee()
}

输出:

I/System.out: 男人 this is man eat for food
    男人man is pee
    男人2 this is man eat for food
    男人2man is pee
    男人3 this is man eat for food
    男人3man is pee
    女人 this is woman is eating foof
    女人 wonman pee====
    女人2 this is woman is eating foof
    女人2 wonman pee====
    女人3 this is woman is eating foof
    女人3 wonman pee====
I/System.out: 男人man is pee
    男人2man is pee
    男人3man is pee
    女人 wonman pee====
    女人2 wonman pee====
    女人3 wonman pee====

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值