Home  >  Q&A  >  body text

java - 面试题:请问,以下哪些修饰符可以使其修饰的变量只能对同包类或子类有效?

如题这个答案正确吗?

package com;

public class TestParent {
    protected String protectedStr="protected";
    String defaultStr="default";

    private void method() {

    }
    void abm(){
        
    }

    protected void proabc(){
        
    }
}
package com;

public class TestSon extends TestParent{

    private void test(){
    
        
    }
}
package com;

class Main {

    static public void main(String[] args) {

        TestParent parent = new TestParent();
        TestSon son = new TestSon();
        parent.abm();//default method 
        son.abm();//default method 
        System.out.println(parent.protectedStr);
        System.out.println(parent.defaultStr);

        // -------------
        parent.proabc(); //protected method 
        son.proabc(); //protected method 
        System.out.println(son.protectedStr);
        System.out.println(son.defaultStr);

    }

}
天蓬老师天蓬老师2743 days ago1919

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-18 10:52:56

    Scope Current class Current package Descendants Other packages
    public
    protected ×
    friendly × ×
    private × × ×

    If you don’t write it, the default is friendly.

    There is nothing wrong with choosing C

    reply
    0
  • Cancelreply