亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

Java方法繼承、重載和覆蓋總結(jié)

時(shí)間:2024-05-09 03:30:52 SUN認(rèn)證 我要投稿
  • 相關(guān)推薦

Java方法繼承、重載和覆蓋總結(jié)

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

Java方法繼承、重載和覆蓋總結(jié)

  1、方法繼承:

  利用extends關(guān)鍵字一個(gè)方法繼承另一個(gè)方法,而且只能直接繼承一個(gè)類。

  * 當(dāng)Sub類和Base類在同一個(gè)包時(shí)Sub類繼承Base類中的public/protected/默認(rèn)級(jí)別的變量個(gè)方法

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

  2、方法重載:

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

  * 方法名相同

  * 方法的參數(shù)類型,個(gè)數(shù)順序至少有一項(xiàng)不同

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

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

  * main方法也可以被重載

  3、方法覆蓋:

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

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

  * 子類方法不能縮小父類方法的訪問權(quán)限

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

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

  * 父類的靜態(tài)方法不能被子類覆蓋為非靜態(tài)方法

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

  * 父類的非靜態(tài)方法不能被子類覆蓋為靜態(tài)方法

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

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

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

  4、Super關(guān)鍵字:

  super和this關(guān)鍵字都可以用來覆蓋Java語言的默認(rèn)作用域,使被屏蔽的方法或變量變?yōu)榭梢?三種情況下的不可見 P171)。

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

  * 在類的構(gòu)造方法種,通過super語句調(diào)用這個(gè)類的父類的構(gòu)造方法

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

  * 只能在構(gòu)造方法或?qū)嵗椒▋?nèi)使用super關(guān)鍵字,而在靜態(tài)方法和靜態(tài)代碼塊內(nèi)不能使用super

  5、多態(tài):

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

  * 對(duì)于一個(gè)引用類型的變量,運(yùn)行時(shí)Java虛擬機(jī)按照它的實(shí)際引用的對(duì)象來處理

  * 運(yùn)行時(shí)環(huán)境中,通過引用類型變量來訪問所引用對(duì)象的方法和屬性時(shí),Java虛擬機(jī)采用以下綁定規(guī)則

  1)實(shí)例方法與引用變量實(shí)際引用的對(duì)象的方法綁定,屬于動(dòng)態(tài)綁定

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

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

  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() );

  }

  }

  輸出結(jié)果:

  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方法繼承、重載和覆蓋總結(jié)】相關(guān)文章:

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

Java枚舉的常用方法03-16

Java線程同步的方法03-17

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

JAVA認(rèn)證開源技術(shù):關(guān)于Java的對(duì)象equals方法03-04

Java數(shù)組操作方法大全03-04

Java獲取當(dāng)前的系統(tǒng)時(shí)間的方法03-04

Java開發(fā)Tomcat部署項(xiàng)目方法03-04

Java動(dòng)態(tài)代理實(shí)現(xiàn)AOP的方法03-16

主站蜘蛛池模板: 日韩午夜福利无码专区a | 欧美无专区| 辽宁省| 亚洲另类中文字幕| 99精品这里只有精品高清视频| 色国产视频| 国产成人亚洲毛片| 少妇大胆瓣开下部自慰| 无码国产精品一区二区免费16| 久久精品午夜福利| 亚洲最新无码中文字幕久久| 国产成人亚洲综合app网站| 日韩精品一区二区三区在线观看| 少妇高潮惨叫喷水在线观看| 确山县| 97狠狠操| 亚洲成人动漫在线| 亚洲免费AV色| h视频在线播放| 青青草免费公开视频| 999久久久免费精品播放| 国内精品视频一区二区三区| 中文字幕无码精品亚洲35| 亚洲熟妇av日韩熟妇在线| 国产精品亚洲a∨天堂| 亚洲伊人久久综合影院| 在线观看国产成人AV 天堂| 国产一在线观看| 一区二区免费视频中文乱码| 欧美日韩在线亚洲二区综二| 亚洲国产精品无码久久电影| 综合图区亚洲欧美另类图片| 博乐市| 国产桃色精品无码| 亚洲香蕉视频综合在线| 国产亚洲精品久久77777| 亚洲欧美激情在线一区| 国产精品久久久久久人妻精品动漫 | 国产午夜成人久久无码一区二区| 97丨九色丨国产人妻熟女| 成年无码按摩AV片在线|