一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java父類繼承中的static和final用法

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

2020-10-07 22:27春風化作秋雨 Java教程

這篇文章主要介紹了Java父類繼承中的static和final用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、父類中staitic修飾的靜態方法,不能覆蓋、不能繼承

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

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

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

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

代碼示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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方法計算結果:" + pFResult);
    System.out.println("父類靜方法計算結果:" + pResult);
    System.out.println("子類靜方法計算結果:" + cResult);
    System.out.println("父類final方法計算結果:" + pMResult);
 
    System.out.println("父類靜態變量num:" + ParentClass.num);
    System.out.println("子類靜態變量num:" + ChildClass.num);
 
  }
}
 
class ParentClass {
  public static final int num = 1;
  ParentClass() {
    System.out.println("執行父類無參數構造方法");
  }
 
  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("執行子類無參數構造方法");
  }
 
//  @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;
//  }
 
}

輸出結果:

執行父類無參數構造方法

執行子類無參數構造方法

父類靜final方法計算結果:5

父類靜方法計算結果:5

子類靜方法計算結果:6

父類final方法計算結果:-1

父類靜態變量num:1

子類靜態變量num:2

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

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

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

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

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

3.父子類中,靜態方法只能被靜態方法覆蓋,父子類中,非靜態方法只能被非靜態方法覆蓋。

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

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

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

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

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

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

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

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

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

static final和final static

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

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

原文鏈接:https://blog.csdn.net/jiahao1186/article/details/83657598

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99一区二区三区 | 国产成人精品一区二三区2022 | 美女禁区视频无遮挡免费看 | 96免费精品视频在线 | 国产在线精品一区二区高清不卡 | 午夜亚洲一区二区福利 | 日本三级免费网站 | 亚洲欧美优优色在线影院 | 久久毛片网站 | 亚洲国产成人久久综合一区 | 欧洲另类一二三四区 | 猫咪社区免费资源在线观看 | 男女肉粗暴进来下面好紧 | 校园高h| 国产图片综合区 | 女色在线观看免费视频 | 天堂资源在线8 | 91久久国产露脸精品 | 精品欧美男同同性videos | 好大水好多好爽好硬好深视频 | 国产香蕉国产精品偷在线观看 | 美女校花被调教出奶水 | 91精品啪在线观看国产91九色 | 国产日日干 | 欧美成人一区二区三区 | 亚洲免费视频一区二区三区 | 四虎最新免费网址 | 日本 在线观看 | xxxxxx国产精品视频 | 色多多视频在线 | 果冻传媒九一制片厂 | 午夜片无码区在线观看 | 暖暖视频日本 | 91进入蜜桃臀在线播放 | 亚洲精品成人A8198A片漫画 | blacked最大的吊| 亚洲国产综合网 | 亚洲 欧美 中文 日韩 另类 | 国产成人综合精品一区 | 国产成人成人一区二区 | 国产66|