簡體   English   中英

java匿名類可以訪問外部類的私有成員。 為什么此代碼無法訪問私有數據成員?

[英]java anoymous class can access private member of outer class. Why this code cannot access private data member?

我想通過在不同類中創建的匿名類訪問類的私有成員。 我是java新手,請解釋一下並告訴我做錯了什么。

class movie{
    private String moviename="bahubali";
    void display(){
        System.out.println(moviename);
   }
}

public class InnerClass{ //main class

    public static void main(String[] args) {
        movie anonymous=new movie() {
            void display() {
                System.out.println(moviename+" in anonymous class");
            }
        };
    
        anonymous.display();
    }
}

您的匿名類繼承自movie類(您應該將其改為Movie以符合 Java 標准)。

繼承類被授予對protected成員的訪問權限,而不是對private成員的訪問權限。

所以在這種情況下的修復應該改變

private String moviename="bahubali";

protected String moviename="bahubali";

.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM