抽象类

20 阅读1分钟

抽象属性

package level02

object Class15 {
  abstract class DreamJob() {
    var money:Double
    var vacation:Int
    var boss:String 
  }
  class PE extends DreamJob{
    var money:Double = 14500
    var vacation:Int = 4
    var boss:String = "无人"
  }
  def main(args:Array[String]):Unit = {
    val pe1 = new PE()
    println(pe1.money)
  }
}
package level02

object Class15 {
  abstract class DreamJob() {
    var money:Double
    var vacation:Int
    var boss:String
  }
  class PE extends DreamJob{
    var money:Double = 14500
    var vacation:Int = 4
    var boss:String = "无人"
    def addMoney():Unit = {
      money *=1.1
    }
  }
  def main(args:Array[String]):Unit = {
    val pe1 = new PE()
    println(pe1.money)
  }
}

重写父类具体成员,使用override

package level02

object Class15 {
  abstract class DreamJob() {
    var money:Double
    var vacation:Int
    var boss:String
  }
  class PE extends DreamJob{
    var money:Double = 14500
    var vacation:Int = 4
    var boss:String = "无人"
    def addMoney():Unit = {
      money *=1.1
    }
    override def getMoney(): Unit = {
      println(s"上银行卡:${money}元")
    }
  }
  def main(args:Array[String]):Unit = {
    val pe1 = new PE()
    pe1.addMoney()
    pe1.getMoney()
  }
}

内部类:在类的内部,写另一个类

package level02

object Class16 {
  class C1 {
    class B1 {
      def say():Unit = {
        println("B1......")
      }
    }
  } 
  def main(args:Array[String]):Unit = {
    val c1 = new C1()
    val b1 = new c1.B1()
    b1.say()
  }
}