Java 权限修饰符(带测试)

Java 权限修饰符(带测试)

@author:Jingdai

@date:2020.09.04

类的权限

类的权限修饰符有两个:public/default

  • public:全部可见
  • default:包内的所有类可见

方法、属性的权限

方法、属性的权限修饰符有public、protected、default和private。

  • public: 全部可见
  • protected:包内的类可见、其它包内的子类可见
  • default:包内的类可见
  • private:本类可见

实测protected

在理解 protected 的时候有点问题,于是今天测试了一下,帮助理解。先说结论:在继承的时候,如果子类没有重写 protected 的方法,则只有父类同包的类才能调用子类的 protected 的方法。

  • 第一次(测试类和子类在同一个包)

    包结构图:
    在这里插入图片描述

    代码:

    Parent.java

    package com;
    import cn.*;
    
    public class Parent{
        protected void fun(){
            System.out.println("OK");
        }
    }
    

    Child.java

    package cn;
    import com.*;
    public class Child extends Parent{
    
    }
    

    Test.java

    package cn;
    import com.*;
    public class Test {
        public static void main (String[] args) {
            Child c = new Child();
            c.fun();
        }
    }
    

    结果:
    在这里插入图片描述

    不能访问,编译报错。

  • 第二次(测试类和父类在同一个包)

    包结构图:
    在这里插入图片描述

    代码:

    Parent.java

    package cn;
    import com.*;
    public class Parent{
        protected void fun(){
            System.out.println("OK");
        }
    }
    

    Child.java

    package com;
    import cn.*;
    public class Child extends Parent{
    
    }
    

    Test.java

    package cn;
    import com.*;
    public class Test {
        public static void main (String[] args) {
            Child c = new Child();
            c.fun();
        }
    }
    

    结果:
    在这里插入图片描述

    运行成功,可以访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值