最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java父類繼承中的static和final用法

 更新時間:2020年10月07日 10:51:07   作者:春風化作秋雨  
這篇文章主要介紹了Java父類繼承中的static和final用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、父類中staitic修飾的靜態(tài)方法,不能覆蓋、不能繼承。

2、父類中staitic修飾的變量或常量,能覆蓋、不能繼承。

static修飾的變量和方法,只屬于類本身,不屬于對象;當聲明一個對象時,并不產(chǎn)生static變量和方法的拷貝。也就是說,用static修飾的變量和方法在類加載的時候,會分配一塊存儲空間,所有此類的對象都可以操控此塊存儲空間;

注意:當子類沒有與父類同名的static變量(或方法時),子類的對象也可操控這塊內(nèi)存空間。但是,子類并沒有繼承父類中static修飾的變量和方法。這是因為static修飾的變量和方法是屬于父類本身的。

3、父類中final修飾的方法,不能覆蓋,但可繼承。

代碼示例:

package com.jdk;
 
/**
 * Created by Liuxd on 2018-11-02.
 */
public class TestExtendsClass {
  public static void main(String[] args) {
    ParentClass parentClass = new ChildClass();
    System.out.println();
 
    int pFResult = ParentClass.plus(3,2);
    int pResult = ParentClass.add(3,2);
    int cResult = ChildClass.add(3,2);
 
    int pMResult = parentClass.minus(2,3);
 
    System.out.println("父類靜final方法計算結(jié)果:" + pFResult);
    System.out.println("父類靜方法計算結(jié)果:" + pResult);
    System.out.println("子類靜方法計算結(jié)果:" + cResult);
    System.out.println("父類final方法計算結(jié)果:" + pMResult);
 
    System.out.println("父類靜態(tài)變量num:" + ParentClass.num);
    System.out.println("子類靜態(tài)變量num:" + ChildClass.num);
 
  }
}
 
class ParentClass {
  public static final int num = 1;
  ParentClass() {
    System.out.println("執(zhí)行父類無參數(shù)構(gòu)造方法");
  }
 
  static int add(int i, int j) {
    return i + j;
  }
 
  static final int plus(int i, int j) {
    return i + j;
  }
 
  final int minus(int i, int j) {
    return i - j;
  }
 
}
 
class ChildClass extends ParentClass {
  public static final int num = 2;
  ChildClass() {
    System.out.println("執(zhí)行子類無參數(shù)構(gòu)造方法");
  }
 
//  @Override 無法繼承,編譯時出錯
  static int add(int i, int j) {
    return i * j;
  }
 
//  無法繼承,編譯時出錯
//  int plus(int i, int j) {
//    return i + j;
//  }
 
//  無法繼承,編譯時出錯
//  int minus(int i, int j) {
//    return i - j;
//  }
 
}

輸出結(jié)果:

執(zhí)行父類無參數(shù)構(gòu)造方法

執(zhí)行子類無參數(shù)構(gòu)造方法

父類靜final方法計算結(jié)果:5

父類靜方法計算結(jié)果:5

子類靜方法計算結(jié)果:6

父類final方法計算結(jié)果:-1

父類靜態(tài)變量num:1

子類靜態(tài)變量num:2

補充知識:java中static、final 和 static final之間的區(qū)別

static可以修飾:全局屬性,方法,代碼塊,內(nèi)部類(靜態(tài)內(nèi)部類或嵌套內(nèi)部類)

由于靜態(tài)屬性和方法是屬于該類的所有對象的,所以可以用類名.靜態(tài)屬性/方法名來訪問。用static修飾的代碼塊表示靜態(tài)代碼塊,當Java虛擬機(JVM)加載類時,就會執(zhí)行該代碼塊。

1.被static修飾的變量,叫靜態(tài)變量或類變量(不能是局部變量),直接可以用類名調(diào)用;被static修飾的變量,叫實例變量,必須實例化對象以后調(diào)用;static修飾的變量可以被修改.

2.靜態(tài)方法可以直接通過類名調(diào)用,任何的實例也都可以調(diào)用,因此靜態(tài)方法中不能用this和super關(guān)鍵字,也不能直接訪問所屬類的實例變量和實例方法(非static的成員變量和成員成員方法),只能訪問所屬類的靜態(tài)成員變量和成員方法。

3.父子類中,靜態(tài)方法只能被靜態(tài)方法覆蓋,父子類中,非靜態(tài)方法只能被非靜態(tài)方法覆蓋。

常見的java中的main方法必須有static修飾,因為在類加載時無法創(chuàng)建對象,靜態(tài)方法可以不通過對象調(diào)用,所以在類的main方法所在在類加載時就可以通過main方法入口來運行程序。

4.static代碼塊也叫靜態(tài)代碼塊,是在類中獨立于類成員的static語句塊,可以有多個,位置可以隨便放,它不在任何的方法體內(nèi),JVM加載類時會執(zhí)行這些靜態(tài)的代碼塊,如果static代碼塊有多個,JVM將按照它們在類中出現(xiàn)的先后順序依次執(zhí)行它們,每個代碼塊只會被執(zhí)行一次。

final可以修飾:方法,類,局部變量

對于基本類型數(shù)據(jù),final會將值變?yōu)橐粋€常量,創(chuàng)建后不能被修改;但是對于對象句柄(亦可稱作引用或者指針),final會將句柄變?yōu)橐粋€常數(shù)(進行聲明時,必須將句柄初始化到一個具體的對象。而且不能再將句柄指向另一個對象。

但是,對象的本身是可以修改的。這一限制也適用于數(shù)組,數(shù)組也屬于對象,數(shù)組本身也是可以修改的。

方法參數(shù)中的final句柄,意味著在該方法內(nèi)部,我們不能改變參數(shù)句柄指向的實際東西,也就是說在方法內(nèi)部不能給形參句柄再另外賦值)。

1.final修飾的變量就會變成常量,而且應當大寫,一旦賦值不能改變,final的常量不會有默認初始值,對于直接在初始化賦值時final修飾符常和static修飾符一起使用。

2.final修飾的方法將不能被其子類覆蓋重寫。

3.final修飾的類類將不能被繼承,且final類中的方法也都是final的, final不能用來修飾構(gòu)造方法,在父類中如果有常量屬性,在子類中使用常量屬性時是不會進行父類的類加載。

static final和final static

沒什么區(qū)別,一般static寫在前面,既具有static屬性又具有final屬性的類/方法/變量。

以上這篇Java父類繼承中的static和final用法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一篇文章看懂Java字符串操作

    一篇文章看懂Java字符串操作

    String是Java中的類,它提供一些預定義的方法,這些方法使基于字符串的問題解決方案更加容易,下面這篇文章主要給大家介紹了關(guān)于Java字符串操作的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Eureka源碼閱讀解析Server服務(wù)端啟動流程實例

    Eureka源碼閱讀解析Server服務(wù)端啟動流程實例

    這篇文章主要為大家介紹了Eureka源碼閱讀解析Server服務(wù)端啟動流程實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • java實現(xiàn)屏幕共享功能實例分析

    java實現(xiàn)屏幕共享功能實例分析

    這篇文章主要介紹了java實現(xiàn)屏幕共享功能的方法,以實例形式分析了屏幕共享功能的客戶端與服務(wù)端的詳細實現(xiàn)方法,是非常具有實用價值的技巧,需要的朋友可以參考下
    2014-12-12
  • Java?spring?mvc請求詳情介紹

    Java?spring?mvc請求詳情介紹

    這篇文章主要介紹了Java?spring?mvc請求詳情,mvc是spring源碼中的一個子模塊,下文關(guān)于spring?mvc請求的相關(guān)資料做簡單介紹,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-03-03
  • EditPlus運行java時從鍵盤輸入數(shù)據(jù)的操作方法

    EditPlus運行java時從鍵盤輸入數(shù)據(jù)的操作方法

    這篇文章主要介紹了EditPlus運行java時從鍵盤輸入數(shù)據(jù)的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Springboot結(jié)合Mybatis-Plus實現(xiàn)業(yè)務(wù)撤銷回滾功能

    Springboot結(jié)合Mybatis-Plus實現(xiàn)業(yè)務(wù)撤銷回滾功能

    本文介紹了如何在Springboot結(jié)合Mybatis-Plus實現(xiàn)業(yè)務(wù)撤銷回滾功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • bug解決Failed_to_execute_goal_org.springframework

    bug解決Failed_to_execute_goal_org.springframework

    這篇文章主要為大家介紹了bug解決Failed_to_execute_goal_org.springframework,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • SpringBoot整合Guava Cache實現(xiàn)全局緩存的示例代碼

    SpringBoot整合Guava Cache實現(xiàn)全局緩存的示例代碼

    這篇文章主要介紹了SpringBoot整合Guava Cache實現(xiàn)全局緩存,Guava Cache是Google Guava庫中的一個模塊,提供了基于內(nèi)存的本地緩存實現(xiàn),文中介紹了SpringBoot整合使用Guava Cache的具體步驟,需要的朋友可以參考下
    2024-03-03
  • Jackson庫進行JSON?序列化時遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    Jackson庫進行JSON?序列化時遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    使用Jackson庫進行JSON序列化時遇到了無限遞歸(Infinite?Recursion)問題,這是因為兩個實體類ComPointQuotaEntity和?ComPointEntity之間存在雙向關(guān)聯(lián)point和pointQuota相互引用,本文給大家介紹解決方案,感興趣的朋友一起看看吧
    2025-03-03
  • java中File與MultipartFile互轉(zhuǎn)代碼示例

    java中File與MultipartFile互轉(zhuǎn)代碼示例

    在Java開發(fā)中,當需要將本地File對象轉(zhuǎn)換為MultipartFile對象以處理文件上傳時,可以通過實現(xiàn)MultipartFile接口或使用CommonsMultipartFile類來實現(xiàn),本文提供了詳細的轉(zhuǎn)換方法和代碼示例,需要的朋友可以參考下
    2024-10-10

最新評論

武山县| 东阿县| 浦县| 扎兰屯市| 会宁县| 莆田市| 建水县| 大理市| 凯里市| 农安县| 梓潼县| 达拉特旗| 夏河县| 安化县| 买车| 湖口县| 白朗县| 朔州市| 封丘县| 育儿| 中阳县| 吉安市| 清原| 青岛市| 蓝山县| 固原市| 镇安县| 巨鹿县| 丰台区| 临汾市| 涞水县| 双柏县| 长沙县| 禹城市| 仙游县| 横峰县| 和林格尔县| 嘉祥县| 苏州市| 永靖县| 璧山县|