Scalaでメソッドのオーバーロード

今回はメソッドオーバーロードについてメモ。

メソッドオーバーロードとは?
オーバーロードとは同じメソッド名で異なる個数の引数や異なる型の引数をとるメソッド複数定義することです。

上の説明だけでは分かりにくい部分もあるのでさっそくコードで見てみます。

scala> class Person(name:String, age:Int){
     | def hello() = println("Hello " + name)
     | def hello(dialogue:String) = println("Hello " + name + "," + dialogue )
     | def olderTha(n:Int):Boolean = { age > n }
     | }
defined class Person

scala> val tanaka = new Person("Tanaka", 28)
tanaka: Person = Person@1a93a7ca

scala> tanaka.hello
Hello Tanaka

scala> tanaka.hello("Nice to meet you!")
Hello Tanaka,Nice to meet you!

Personクラスではhelloメソッドが2つ定義されていますが、呼び出し側の引数の与え方によって、それぞれ違うhelloメソッドが呼び出されていることが確認できます。

ちょっと気になったので調べてみました。


Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版

Guide to ScalaーScalaプログラミング入門

Guide to ScalaーScalaプログラミング入門