激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

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

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

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

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

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

  1、方法繼承:

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

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

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

  2、方法重載:

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

  * 方法名相同

  * 方法的參數類(lèi)型,個(gè)數順序至少有一項不同

  * 方法的返回類(lèi)型可以不相同

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

  * main方法也可以被重載

  3、方法覆蓋:

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

  * 子類(lèi)的方法名稱(chēng)返回類(lèi)型及參數簽名 必須與父類(lèi)的一致

  * 子類(lèi)方法不能縮小父類(lèi)方法的訪(fǎng)問(wèn)權限

  * 子類(lèi)方法不能拋出比父類(lèi)方法更多的異常

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

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

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

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

  * 父類(lèi)的私有方法不能被子類(lèi)覆蓋

  * 父類(lèi)的抽象方法可以被子類(lèi)通過(guò)兩種途徑覆蓋(即實(shí)現和覆蓋)(P169)

  * 父類(lèi)的非抽象方法可以被覆蓋為抽象方法

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

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

  * 父類(lèi)的成員變量和方法為private使用super訪(fǎng)問(wèn)編譯出錯

  * 在類(lèi)的構造方法種,通過(guò)super語(yǔ)句調用這個(gè)類(lèi)的父類(lèi)的構造方法

  * 在子類(lèi)種訪(fǎng)問(wèn)父類(lèi)的被屏蔽的方法和屬性

  * 只能在構造方法或實(shí)例方法內使用super關(guān)鍵字,而在靜態(tài)方法和靜態(tài)代碼塊內不能使用super

  5、多態(tài):

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

  * 對于一個(gè)引用類(lèi)型的變量,運行時(shí)Java虛擬機按照它的實(shí)際引用的對象來(lái)處理

  * 運行時(shí)環(huán)境中,通過(guò)引用類(lèi)型變量來(lái)訪(fǎng)問(wèn)所引用對象的方法和屬性時(shí),Java虛擬機采用以下綁定規則

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

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

  3)成員變量(包括靜態(tài)和實(shí)例變量)與引用變量所聲明的類(lèi)型的成員變量綁定,屬于靜態(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() );

  }

  }

  輸出結果:

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

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

Java枚舉的常用方法03-16

Java線(xiàn)程同步的方法03-17

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

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

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

Java獲取當前的系統時(shí)間的方法03-04

Java開(kāi)發(fā)Tomcat部署項目方法03-04

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

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频