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

图片描述

如题这个答案正确吗?

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);

    }

}
阅读 6.5k
1 个回答
作用域 当前类 当前包 子孙类 其他包
public
protected ×
friendly × ×
private × × ×

不写默认就是 friendly.

选 C 没毛病

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题