訪問修飾符protected

2021-08-04 09:38:53 字數 1500 閱讀 9597

protected修飾符的確讓我有點困惑。例如:object的clone()方法就是protected修飾的。發現,有的時候可以訪問,但很多時候根本訪問不到。

(一)下面就以clone()方法為例

我在superclass類中,不重寫clone(),只是訪問。**如下:

package cn;

public

class

superclass

implements

cloneable

}

現在讓subclass繼承superclass。

}可見,除了在superclass類的內部,其它地方無法訪問它的clone方法。

(二)要想呼叫物件的clone方法,該怎麼做呢?

我們可以重寫object的clone(),並把訪問修飾符改為public(如果不改的話,訪問修飾符就是protected,並不能達到「在任何地方都能實現clone」的目的)。

(1)同乙個包下的類,可以訪問protected方法

package cn;

public

class parent1

}

package cn;

public

class parent2

}

package com;

import cn.parent1;

public

class

parent3

extends

child1

}

(2)子類可以訪問父類的protected方法(即便子類和父類不在同乙個包下面)

通過子類去訪問父類的protected方法,並且子類可以重寫(覆蓋)父類的protected方法。

package cn;

public

class parent1

}

package com;

import cn.parent1;

public

class

child1

extends

parent1

}

C 的protected訪問修飾符

概述 設a為父類,b為繼承a的子類 在a中被protected修飾的成員 1 在a中可以訪問 2 在b中可以直接訪問 3 在b中通過b的例項訪問 4 在a和b的外部類無法訪問 總結 基類中訪問無限制 子類中直接訪問或通過子類例項訪問 示例 using system namespace testpro...

protected修飾符總結

晚上敲 的時候,發現呼叫jtextfield的protected getcolumnwidth 方法報錯。看來自己以前對protected的理解是錯誤的,於是測試一下。寫乙個父類和兩個子類 public class a public class b1 extends a public class b...

java的protected訪問修飾符理解

其實在某個類中定義的protected 方法和屬性和預設許可權方法和屬性是一樣的。比如,某類的protected 方法和屬性在包外是不能通過該類物件進行訪問的 你能在包外訪問乙個類的預設許可權的方法和屬性嗎?當然不能 這就是為什麼在某物件所在的包的以外的任何地方,你不可以通過該類的物件引用來呼叫它的...