美文网首页
Java的权限修饰符

Java的权限修饰符

作者: 78f6ced3a012 | 来源:发表于2019-05-27 00:11 被阅读0次

    Java中的权限修饰符分为4种:public,protected, default(默认),private
    在项目中protected和default用的比较少,容易混淆
    现在对比分析一下
    public:公共的,被随便访问,没有限制
    protected:受保护的,只能被自己,自己的子类,同一个包下的类访问
    default:默认的,只能被自己,同一个包下的类访问
    private:私有的,只能被自己访问


    permission.jpg

    有趣的问题(看代码):
    实体bean

    package com.example.java8.model.son1;
    public class Father {
        protected void print(){
        }
    }
    
    package com.example.java8.model.son1;
    public class Son1 extends Father {
    }
    
    package com.example.java8.model.son2;
    import com.example.java8.model.son1.Father;
    public class Son2 extends Father {
    }
    

    测试

    package com.example.java8.model.son1;
    import com.example.java8.model.son2.Son2;
    public class Son1Test {
        public void test(){
            Son1 son1 = new Son1();
            son1.print();
    
            Son2 son2 = new Son2();
            son2.print();
        }
    }
    
    package com.example.java8.model.son2;
    import com.example.java8.model.son1.Son1;
    public class Son2Test {
        public void test(){
            Son1 son1 = new Son1();
            son1.print();  // 编译报错
    
            Son2 son2 = new Son2();
            son2.print(); // 编译报错
        }
    }
    

    包结构图:


    error.jpg

    总结:当子类使用父类用protected修饰的方法时,如果代码不和父类同一个文件夹的话,会导致使用不了。

    相关文章

      网友评论

          本文标题:Java的权限修饰符

          本文链接:https://www.haomeiwen.com/subject/uimqtctx.html