Scala面向对象之创建对象,重载构造方法,继承抽象类实现接口

package com.wyh.day01

object ScalaClass {

  def main(args: Array[String]): Unit = {
    val student = new Person("王友虎",21)
    var result = student.toString
    println(result)

    val student1 = new Student2("赵以浩",22,"006")
    val result1 = student1.toString
    println(result1)

    val inst = new Inst
    println(inst.toInt("12"))
    println(inst.toDouble("45"))


  }

}

/**
  *
  * 定义一个类,包括参数
  * 1、scala中的类参数写在类上
  * 2、可以重写方法
  */
class Person(name:String,age:Int){
  var _name: String = name
  var _age:Int = age

  override def toString: String = _name+"\t"+_age
}


/**
  * 定义一个类,继承Person类,并且重写构造方法
  *
  */
class Student2(name:String,age:Int,Clazz:String) extends Person(name,age){
  var _Clazz:String = Clazz

  override def toString: String = _name+"\t"+_age+"\t"+_Clazz
}

/**
  * 定义抽象类
  *
  */
abstract class abs(){

  //定义抽象方法
  def toInt(Str:String):Int

}

/**
  *
  * 定义接口
  */
trait Tr{
  def toDouble(str:String):Double
}

/**
  * 定义类继承抽象类,实现接口
  *
  * 注意,scala中的实现接口是with
  */
class Inst extends abs with Tr {
  override def toInt(Str: String): Int = Integer.parseInt(Str)

  override def toDouble(str: String): Double = str.toDouble
}
posted @ 2020-01-20 12:43  Xiaohu_BigData  阅读(359)  评论(0编辑  收藏  举报