程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 基於Java protected的深刻懂得

基於Java protected的深刻懂得

編輯:關於JAVA

基於Java protected的深刻懂得。本站提示廣大學習愛好者:(基於Java protected的深刻懂得)文章只能為提供參考,不一定能成為您想要的結果。以下是基於Java protected的深刻懂得正文


一提到拜訪掌握符protected,即便是初學者普通都邑很自負的以為本身在這方面的懂得沒有成績。那好,我們提一個成績出來看看.....

請看上面兩頭代碼,個中包B中的貓和鼠都繼續了植物類。

//代碼1:包A中有一個植物類 
package testa; 
public class Animal { 
    protected void crowl(String c){ 
        System.out.println(c); 
    } 

//代碼2:包B中有兩個類——貓類和鼠類 
package testb; 
import testa.Animal; 
class Cat extends Animal{ 


class Rat extends Animal{ 
    public void crowl(){ 
                crowl("zhi zhi"); //沒有成績,繼續了Animal中的protected辦法——crowl(String) 
            Cat cat=new Cat(); 
                cat.crowl("miao miao"); //wrong, The method crowl(String) from the type Animal is not visible 
    } 


既然,貓和鼠都繼續了植物類,那末在鼠類的感化規模內,看不到貓所繼續的crowl()辦法呢?

關鍵地點:
protected受拜訪掩護規矩是很奧妙的。固然protected域對一切子類都可見。然則有一點很主要,子類只能在本身的感化規模內拜訪本身繼續的誰人父類protected域,而沒法到拜訪其余子類(同父類的親兄弟)所繼續的protected域。 說白了就是:老鼠只能叫"zhi,zhi"。即便他能看見貓(可以在本身的感化域內創立一個cat對象),也永久沒法學會貓叫。
也就是說,cat所繼續的crowl辦法在cat類感化規模內可見。但在rat類感化規模內弗成見,即便rat,cat是親兄弟也不可。
別的:這就是為何我們在用clone辦法的時刻不克不及簡略的直接將對象aObject.clone()出來的緣由了。

總之,當B extends A的時刻,在子類B的感化規模內,只能挪用簿子類B界說的對象的protected辦法(該辦法從父類A中繼續而來)。而不克不及挪用其他A類對象的protected 辦法
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved