中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      Java方法繼承、重載和覆蓋總結

      時間:2024-05-09 03:30:52 SUN認證 我要投稿
      • 相關推薦

      Java方法繼承、重載和覆蓋總結

        Java 平臺是基于 Java 語言的平臺。這樣的平臺非常流行。因此微軟公司推出了與之競爭的.NET平臺以及模仿Java的C#語言。下面文章介紹了Java方法繼承、重載、覆蓋總結:

      Java方法繼承、重載和覆蓋總結

        1、方法繼承:

        利用extends關鍵字一個方法繼承另一個方法,而且只能直接繼承一個類。

        * 當Sub類和Base類在同一個包時Sub類繼承Base類中的public/protected/默認級別的變量個方法

        * 在不同包時繼承public/protected級別的變量和方法。

        2、方法重載:

        如果有兩個方法的方法名相同,但參數不一致,哪么可以說一個方法是另一個方法的重載。

        * 方法名相同

        * 方法的參數類型,個數順序至少有一項不同

        * 方法的返回類型可以不相同

        * 方法的修飾符可以不相同

        * main方法也可以被重載

        3、方法覆蓋:

        如果在子類中定義一個方法,其名稱、返回類型及參數簽名正好與父類中某個方法的名稱、返回類型及參數簽名相匹配,那么可以說,子類的方法覆蓋了父類的方法。

        * 子類的方法名稱返回類型及參數簽名 必須與父類的一致

        * 子類方法不能縮小父類方法的訪問權限

        * 子類方法不能拋出比父類方法更多的異常

        * 方法覆蓋只存在于子類和父類之間,同一個類中只能重載

        * 父類的靜態方法不能被子類覆蓋為非靜態方法

        * 子類可以定義于父類的靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方法(滿足覆蓋約束), 而且Java虛擬機把靜態方法和所屬的類綁定,而把實例方法和所屬的實例綁定。

        * 父類的非靜態方法不能被子類覆蓋為靜態方法

        * 父類的私有方法不能被子類覆蓋

        * 父類的抽象方法可以被子類通過兩種途徑覆蓋(即實現和覆蓋)(P169)

        * 父類的非抽象方法可以被覆蓋為抽象方法

        4、Super關鍵字:

        super和this關鍵字都可以用來覆蓋Java語言的默認作用域,使被屏蔽的方法或變量變為可見(三種情況下的不可見 P171)。

        * 父類的成員變量和方法為private使用super訪問編譯出錯

        * 在類的構造方法種,通過super語句調用這個類的父類的構造方法

        * 在子類種訪問父類的被屏蔽的方法和屬性

        * 只能在構造方法或實例方法內使用super關鍵字,而在靜態方法和靜態代碼塊內不能使用super

        5、多態:

        * 對于一個引用類型的變量,Java編譯器按照它的聲明的類型來處理

        * 對于一個引用類型的變量,運行時Java虛擬機按照它的實際引用的對象來處理

        * 運行時環境中,通過引用類型變量來訪問所引用對象的方法和屬性時,Java虛擬機采用以下綁定規則

        1)實例方法與引用變量實際引用的對象的方法綁定,屬于動態綁定

        2)靜態方法與引用變量所聲明的類型的方法綁定,屬于靜態綁定

        3)成員變量(包括靜態和實例變量)與引用變量所聲明的類型的成員變量綁定,屬于靜態綁定

        Java代碼

        class Super {

        static int stat = 1;

        int nonStat = 2;

        static int statMethod(){

        return 3;

        }

        int nonStatMethod(){

        return 4;

        }

        }

        public class Sub extends Super {

        static int stat = 10;

        int nonStat = 20;

        static int statMethod(){

        return 30;

        }

        int nonStatMethod(){

        return 40;

        }

        public static void main(String args) {

        Super s = new Sub();

        System.out.println("Static is " + s.stat);

        System.out.println("Non-Static is " + s.nonStat);

        System.out.println("Static method is " + s.statMethod() );

        System.out.println("Non-Static method is " + s.nonStatMethod() );

        Sub sub = (Sub)s;

        System.out.println("Static is " + sub.stat);

        System.out.println("Non-Static is " + sub.nonStat);

        System.out.println("Static method is " + sub.statMethod() );

        System.out.println("Non-Static method is " + sub.nonStatMethod() );

        }

        }

        輸出結果:

        Static is 1

        Non-Static is 2

        Static method is 3

        Non-Static method is 40

        Static is 10

        Non-Static is 20

        Static method is 30

        Non-Static method is 40

      【Java方法繼承、重載和覆蓋總結】相關文章:

      Java方法(函數)傳值和傳引用的問題03-17

      Java枚舉的常用方法03-16

      Java線程同步的方法03-17

      Java中日期的處理方法03-09

      JAVA認證開源技術:關于Java的對象equals方法03-04

      Java數組操作方法大全03-04

      Java獲取當前的系統時間的方法03-04

      Java開發Tomcat部署項目方法03-04

      Java動態代理實現AOP的方法03-16

      主站蜘蛛池模板: 国产精品久久国产三级| 中文字幕一区二区三区网址 | 国产精品熟女孕妇一区二区| 亚洲性无码av在线| 阳泉市| 日韩啪啪精品一区二区亚洲av| 亚洲AV小说在线观看| 少妇被爽到自拍高潮在线观看| 五指山市| 伊人中文字幕在线乱码| 99久久这里只精品国产免费| 久久亚洲av午夜福利精品| 国产美女黑丝嫩草在线| 一区二区三区在线视频免费观看| 亚洲网站免费看| 久久aⅴ无码av高潮AV喷| 92精品国产自产在线观看48页| av手机天堂| 南陵县| 沾化县| 陇南市| 欧美日韩国产在线人成dvd| 中文字幕无线精品亚洲乱码一区| 中文一区二区三区无码视频| 久久国产香蕉一区精品天美| 国产精品无码mv在线观看| 亚洲成aⅴ人片在线观看天堂无码 国产精品一区二区三区色 | 国产精品一区二区三区色| 乐清市| 微博| 亚洲国产精品日韩专区av| 国产精品不卡在线视频| 亚洲高清有码在线观看| 高平市| 风韵丰满妇啪啪区老老熟女杏吧| 97人妻蜜臀中文字幕| 日韩精品一区二区三区中文| 亚洲 国产 韩国 欧美 在线| 亚洲最新中文字幕一区| 武宣县| 崇礼县|