<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                **1. 定義抽象類的基礎語法** ```scala abstract class ClassName(參數列表){ 抽象方法 非抽象方法 字段 } ``` * 抽象類可以同時存在抽象方法和非抽象方法,抽象方法不需要`abstract`關鍵字修飾 * 抽象類無法實例化,即不能被`new` * 抽象類新增抽象方法和不能被實例化外,與類的其它細節都是一樣的 **2. 繼承相關** * Scala的抽象類同Java的抽象類一樣,只有被子類繼承才能調用它的相關成員; * 當子類重寫父類方法或字段時,必須使用`override`關鍵字修飾; * 子類必須重寫父類的抽象方法,非抽象方法可選; * 無論是哪種類,子類都不能重寫父類中的`var`字段; * 如果不想某個類或成員被繼承,可以使用`final`修飾類或成員; **3. 定義抽象類** ```scala // 抽象類的主構造器和它的字段 abstract class Point1(var x:Int, var y:Int) { // 無參輔助構造器 def this() = { this(0, 0) } // 非抽象方法 def move(dx:Int, dy:Int):Unit={ x = x + dx; y = y + dy; } // 抽象方法,沒有方法體就是抽象方法,不需要abstract關鍵字修飾 // 何況abstract關鍵字不能修飾方法 def add(x:Int, y:Int):Int } ``` 我們可以通過查看編譯后的Java代碼了解Scala為我們自動做了哪些事: ```java import scala.reflect.ScalaSignature; @ScalaSignature(bytes="\006\0") public abstract class Point1 { private int x; private int y; public int x() { return this.x; } public void x_$eq(int x$1) { this.x = x$1; } public int y() { return this.y; } public void y_$eq(int x$1) { this.y = x$1; } public void move(int dx, int dy) { x_$eq(x() + dx); y_$eq(y() + dy); } public abstract int add(int paramInt1, int paramInt2); public Point1(int x, int y) { } public Point1() { this(0, 0); } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看