scala的抽象类、抽象字段、抽象方法

1.抽象类是声明用abstract

2.方法是抽象方法
在抽象类中只需要定义方法,没有实现

3.字段是抽象方法
在抽象类中不给字段进行赋值

4.代码
package com.jn.scala.oop

/**
 * @authoradmin

 */
class AbstractClassOps{
    var id : Int = _ //使用占位符,只有在var时候可以使用占位符.val的时候是不能使用占位符的。
}

abstract class SuperTeacher( val name : String ){
  var id : Int //在字段进行申明的时候不给字段进行赋值,
  var age : Int
  def teach //抽象方法不需要写方法的实现体,前面不需要添加关键字abstract
}
class TeacherForMethod( name : String ) extends SuperTeacher( name ){
  override var id = name . hashCode () //对抽象类定义的属性进行赋值
  override var age = 15
//实现抽象类的方法和属性的赋值可以不写override但是建议都写上,这样更加明了。
  override def teach { //对抽象类定义的方法进行实现,
    println ( "Teaching!" )
  }
}

object AbstractClassOps {
  def main ( args : Array[ String ]): Unit = {
    val teach = new TeacherForMethod( "Spark" )
    println ( "teach.id=" + teach . id )
    println ( "teach.age=" + teach . age )
    teach . teach
  }
}

//运行结果
teach.id=80085693
teach.age=15
Teaching!


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值