Help us understand the problem. What is going on with this article?

がばがばscala独学-クラス(2)

More than 3 years have passed since last update.

はじめに

下記のテキストを通して、基本的な書き方を学びつつ、個人的に気になったことを検証していくメモ代わりです。
https://dwango.github.io/scala_text/basic.html
本当にありがとう、dwango様・・・

クラス

  • ざっくりまとめ
    • 継承は実装の再利用や処理の共通化をするために使用
    • override漏れがあった場合はコンパイルエラーとなるため安心して実装可能

継承

  • 継承の目的

    • スーパークラスの実装による、サブクラスでの実装の再利用
    • スーパークラスのインタフェースによる、複数サブクラスでの処理の共通化
  • 一般型

    class SubClass(....) extends SuperClass {
      ....
    }
    
  • override

    • 既存メソッドの上書き処理
    scala> class PrinterSuperClass() {
         |     def print(): Unit = {
         |         println("super class")
         |     }
         | }
    defined class PrinterSuperClass
    
    scala> new PrinterSuperClass().print
    super class
    
    --------------------------------------
    
    scala> class PrinterSubClass() extends PrinterSuperClass{
         |
         | }
    defined class PrinterSubClass
    
    scala> new PrinterSubClass().print
    super class
    
    --------------------------------------
    
    scala> class PrinterSubClass() extends PrinterSuperClass{
         |     def print(): Unit = {
         |         println("sub class")
         |     }
         | }
    <console>:9: error: overriding method print in class PrinterSuperClass of type ()Unit;
     method print needs `override' modifier
               def print(): Unit = {
                   ^
    --------------------------------------
    
    scala> class PrinterSubClass() extends PrinterSuperClass{
         |     override def print(): Unit = {
         |         println("sub class")
         |     }
         | }
    defined class PrinterSubClass
    
    scala> new PrinterSubClass().print
    sub class
    
    • 同名関数をoverrideせずに定義すると needs override modifierと出るためオーバーライド漏れはない
chara06ken
画像処理を研究し、web系の会社に就職後2年弱で退職。 受託開発をしながら様々なシステムを扱ってた何でも屋さん。 今は普通のフロントエンドエンジニア。 TS/C++/Java/PHP/JS/CSS/sass/Scala/Rust
https://charaken.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away