Scala学习笔记(三)----类的写法

直接上代码 注意点写在注释里了

package cn.limbo.demo
  /**
    * Created by Limbo on 16/6/28.
    * class ClassName(),括号代表了主构造器,def this()表示定义了一个副构造器
    * 类中的所有单独可执行的语句都会被包含在主构造器中
    */
  class Complex(val real: Int, val imaginary: Int) {


    def +(operand: Complex): Complex = {
      println("Calling + ")
      new Complex(real + operand.real, imaginary + operand.imaginary)
    }

    def *(operand: Complex): Complex = {
      println("Calling * ")
      new Complex(real * operand.real - imaginary * operand.imaginary, real * operand.imaginary + imaginary * operand.real)
    }

    def this(real : Int)
    {
     this(real,1)
    }

    override def toString(): String = {
      real + (if (imaginary < 0) "" else "+") + imaginary + "i";
    }
  }

/**
  * Scala继承的时候一定要在构造器中写override在父类的属性前
  */
class number(override val real:Int ,override val imaginary :Int, var name: String)extends Complex(real,imaginary)
{
  override def toString() : String = super.toString() + "name : " + name
}

但是后来发现如果用var来定义属性的话是不能添加override的,原因是可变参数(var定义的参数)没有override的必要,所以若是继承,无需写var,直接写成

class Dog(name:String,age:Int )extends Pet(name, age)
遇到val定义的变量再用override吧




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值