<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

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

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            java語言

            java動態方法調度實例

            時間:2025-04-26 07:19:33 java語言 我要投稿
            • 相關推薦

            java動態方法調度實例

              動態方法調度:

              1. 訪問一個引用型的變量的非靜態方法,運行時與實際引用的對象的方法綁定。

              2. 訪問一個引用型的變量的靜態方法,運行時與聲明的類的方法綁定。

              3. 訪問一個引用型的變量的成員變量(包括靜態變量和實例變量),運行時與聲明的類的成員變量綁定。

              第3點尤其注意啊,之前我從來沒注意過啊

              1. 非靜態方法:

              public class Person {public String name; public void getInfo() { System.out.println("父類"); }}public class Student extends Person { public void getInfo() { // 方法重寫 super.getInfo(); // 調用父類的方法 System.out.println("子類");}public static void main(String[] args) { Person s = new Student(); Person t = new Person(); s = t; // S的對象類型是父類,即Person類 s.getInfo();}}

              運行結果為:父類

              2. 靜態方法:

              public class Person {public String name; public static void getInfo() { System.out.println("父類"); }}public class Student extends Person {Publics static void getInfo() { // 方法重寫System.out.println("子類");}public static void main(String[] args) {Person s = new Student();s.getInfo(); //等價于Person.getInfo();}}

              運行結果為:父類

              3. 成員變量

              public class erson {public String name = "father"; public void getInfo() { System.out.println("父類"); }}public class Student extends Person {public String name = "son";public void getInfo() { // 方法重寫super.getInfo(); // 調用父類的方法System.out.println("子類");}public static void main(String[] args) {Person s = new Student();Person t = new Person();s = t;System.out.println(s.name);}}

              運行結果:fanther

              將成員變量變為static類型的也是一樣的

              另外對于如下兩個變量

              Students = new Student();Person t = new Student();

              不過這兩者實際上是有區別的,當子類Student中有了自己的個性方法(在父類中沒有的)時,比如有了方法

              public goSchool(){}

              那么只有s可以調用這個goSchool方法

              而t不能調用

              希望本文所述對大家java程序設計有所幫助。

            【java動態方法調度實例】相關文章:

            關于Java動態實現的方法08-23

            Java中的== 和equals()方法詳解與實例教程08-03

            Java實例化的四種方法介紹08-23

            JAVA的動態代理分析09-14

            java調用c函數的實例09-16

            Java鍵盤輸入實例07-06

            Java中的Spring入門實例09-15

            Java中synchronized的使用實例05-31

            JAVA語言中的實例變量06-01

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

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

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院