1. 程式人生 > 遊戲 >拳頭公司推出LCS活動 挖掘培養北美LOL高段女玩家

拳頭公司推出LCS活動 挖掘培養北美LOL高段女玩家

private default protected public static final abstract 介面中default

一、訪問修飾符

1.1 private訪問控制符

當前類訪問許可權

如果一個成員方法或成員變數名前 使用了 private 訪問控制符,那麼這個成員只能在這個類的內部使用。

1.2 default 訪問控制符

包訪問許可權(預設)

default訪問控制的成員或外部類可以被相同包下的其他類訪問;default不能修飾變數。

1.3 protected 訪問控制符

子類訪問許可權

基類的 protected 成員是包內可見的,並且對子類可見;

若子類與基類不在同一包中,那麼在子類中,子類例項可以訪問其從基類繼承而來的protected方法,而不能訪問基類例項的protected方法。

1.4 public 訪問控制符

公共訪問許可權

可以 被所有的類訪問,不管訪問類與被訪問類是否在同一個包中。

二、非訪問修飾符

2.1 static修飾符

用來修飾類方法和類變數。static的真正作用就是用於區分Field、方法、內部類、初始化塊這四種成員到底屬於類本身還是屬於例項。

2.1.1特點

  • static修飾的變數屬於類變數,多個物件共享同一個static變數;
  • static修飾的方法屬於靜態方法,靜態方法不能重寫(不屬於某個物件),不能使用this關鍵字(無法指向合適的物件);
  • 可以直接通過“類名 . 屬性/方法”的方式訪問靜態屬性和靜態方法,不需要建立類的物件;
  • 靜態成員不能直接訪問非靜態成員。靜態成員屬於類,不需要生成物件就存在了,而非靜態需要生成物件才產生. 所以靜態成員不能直接訪問

2.2 final修飾符

意思是最終的、不可修改的,最見不得變化,用來修飾類、方法和變數

2.2.1特點

  • final修飾的類不能被繼承,final類中的所有成員方法都會被隱式地指定為final方法;
  • final修飾的方法不能被重寫;
  • final修飾的變數是常量,如果是基本資料型別的變數,則其數值一旦在初始化之後便不能更改;如果是引用型別的變數,則在對其初始化之後便不能再讓其指向另一個物件。

2.3 abstract修飾符

abstract 修飾符,用來建立抽象類和抽象方法

2.3.1特點

  • abstract修飾的類是抽象類,抽象類可以繼承別的普通類或抽象類,也可以實現介面,但抽象類不可以例項化;
  • abstract修飾的方法是抽象方法,抽象方法沒有方法體;
  • 抽象類不一定有抽象方法,有抽象方法的類必須是抽象類;

三、jdk1.8的介面中default修飾的方法

接口裡的變數預設隱含型別是public static final

方法預設型別是public abstract

在1.8中,對已有的介面,如果想對介面增加一個新方法,那麼需要對實現該介面的所有類進行修改,如果介面實的現類很多,就會帶來

很大的工作量,而且還很容易破壞以前的程式碼,帶來一些問題。如果把新的方法定義為default方法,就可以避免對其他實現類的修改。

新增了default方法,如果方法前面加上該修飾符,則實現類並不是必須實現該方法。並且在介面中,還可以直接編寫該方法的方法體。

當然子類也可以重寫該方法。

注意:

  1. 當多個介面中有同一個用default修飾的方法時,就無法判斷到底實現的是哪個介面的方法。這種情況下,就必須重寫方法

  2. 一個類繼承的父類和實現的介面中都有同一個方法,而這個類又沒有重寫時,實現的是父類的方法,而不是介面中的方法。