二、訪問許可權
三、繼承(inheritance)—深入
4.繼承後的特點——成員方法
5.繼承後的特點——構造方法
四、super和this
防止該類的**和資料被其他類隨意訪問,要訪問該類的資料,必須通過指定的方式。適當的封裝可以讓**更容易理解與維護,也加強了**的安全性。
將屬性隱藏起來,若需要訪問某個屬性,提供公共方法對其訪問。
1)private的含義
2)private的使用格式
private 資料型別 變數名;使用private修飾成員變數,**如下:
public
class
person
提供get***方法/set***方法,可以訪問成員變數,**如下:
public
class
person
public
void
setname
(string name)
public
boolean
isgender()
public
void
setgender
(boolean gender)
public
intgetage()
public
void
setage
(int age)
}
通過訪問許可權 public protected default private 來封裝類、方法及屬性,達到隱藏細節的目的,最終達到「該露的露,不該露的別瞎露」 目的。
private可以修飾成員變數,成員方法,構造方法,不能修飾類(此刻指的是外部類,內部類不加以考慮)繼承:就是子類繼承父類的屬性和行為,使得子類物件具有與父類相同的屬性、相同的行為。子類可以直接訪問父類中的非私有的屬性和行為。de****t即不寫任何關鍵字,它可以修飾類,成員變數,成員方法,構造方法
protected可以修飾成員變數,成員方法,構造方法,但不能修飾類(此處指的是外部類,內部類不加以考慮)
public是許可權最大的修飾符,他可以修飾類,成員變數,成員方法,構造方法
如果子類父類**現不重名的成員變數,這時的訪問是沒有影響的。
如果子類父類**現重名的成員變數,這時的訪問是有影響的。
class
fuclass
ziextendsfu}
class
extendsdemo03
}演示結果:
fu num=
6zi num=
6
子父類**現了同名的成員變數時,在子類中需要訪問父類中非私有成員變數時,需要使用super關鍵字,修飾父類成員變數,類似於之前學過的this。
super使用格式:
super.父類成員變數名子類方法需要修改,**如下:
class
ziextendsfu}
演示結果:
fu num=
5zi num=
6
如果子類父類**現不重名的成員方法,這時的呼叫是沒有影響的。
如果子類父類**現重名的成員方法,這時的訪問是一種特殊情況,叫做方法重寫(override)。
**如下:
classfu}
class
ziextendsfu}
public
class
extends demo05
}
子類可以根據需要,定義特定於自己的行為。既沿襲了父類的功能名稱,又根據子類的需要重新實現父類方法,從而進行擴充套件增強。
注意事項:
1.構造方法的名字是與類名一致的。所以子類是無法繼承父類構造方法的。
2.構造方法的作用是初始化成員變數的。所以子類的初始化過程中,必須先執行父類的初始化動作。子類的構造方法中預設有乙個super(),表示呼叫父類的構造方法,父類成員變數初始化後,才可以給子類使用。
**如下:
classfu}
class
ziextendsfu}
public
class
extendsdemo07
}輸出結果:
fu()
zi()
訪問成員:
this
.成員變數 ‐‐ 本類的
super
.成員變數 ‐‐ 父類的
this
.成員方法名(
) ‐‐ 本類的
super
.成員方法名(
) ‐‐ 父類的
訪問構造方法:
this(.
..) ‐‐ 本類的構造方法
super(.
..) ‐‐ 父類的構造方法
子類的每個構造方法中均有預設的super(),呼叫父類的空參構造。手動呼叫父類構造會覆蓋預設的super()。super()和this()都必須是在構造方法的第一行,所以不能同時出 繼承訪問許可權
當子類繼承了某個類後,便可以使用父類中的成員變數,當並不是完全繼承父類的所有成員變數,具體原則如下 變數原則 1 能夠繼承父類的public和protected變數.不能夠繼承父類的private變數 package test1 class son public class a extends so...
C 類繼承訪問許可權及外部訪問許可權
c 訪問許可權問題主要包括兩種 一種是外界對類成員的普通訪問,主要通過類內的public protected private許可權修飾符 另一種是繼承關係中子類對父類成員的訪問。基本原則 外界只能訪問類中public成員,子類可訪問父類的public和protected成員 不同繼承方式只影響外界 ...
C 繼承 訪問許可權控制
三種訪問許可權 public 可以被任意實體訪問 protected 只允許子類及本類的成員函式訪問 private 只允許本類的成員函式訪問 三種繼承方式 public 繼承 protect 繼承 private 繼承 組合結果 基類中 繼承方式 子類中 public public繼承 publi...