• Java外部类为什么不能用protected、private修饰


    java只有四种访问控制权限:private、default、protected、public

    private:当前类访问权限
    default:包访问权限
    protected:子类访问权限
    public:公共访问权限

    外部类为什么不能使用protected、private修饰:

    1.不能用private:

    对于一个外部类,用private修饰是没有意义的。因为如果使用private修饰外部类,其它类就不能访问的这个类,那么这个类就不能创建实例,这个类的属性和方法就不能被外界访问,所以没有意义。

    2.不能用protected:

    protected是用来修饰类中的属性和方法的,不是用来修饰类的。假如定义一个A类用protected修饰,再在与A类不同包的另一个保重定义一个B类,B类如果要继承A类,前提是B类能够访问到A类。仔细想想就会发现这是冲突的。(你要成为A类的子类,你的先访问到A类,但你要访问到A类,那你先得成为A类的子类。因为protected修饰的类就是给子类访问的)这个逻辑明显是冲突的。

    所以不仅是外部类,普通类也不能用protected修饰。

    这时肯定有人会说:把B类放在A类同一个包下,那B类不就可以访问到A类了吗?

    但是:如果你把B类放在和A类同一个包下,那和用default修饰A类有什么区别,既然和default没有区别,那干嘛还要用protected修饰A类,而且protected本身可以跳出同一个包访问的意义也不存在了,所以用protected修饰类是没有意义的。

  • 相关阅读:
    Python网络爬虫——bs4基本用法
    Python网络爬虫——requests模块(1)
    yii gii配置ip限制使用gii
    openfire连接数据库mysql
    js 提示条
    jquery滚动条平滑滑动
    yii2.0 添加组件baidu ueditor
    yii添加验证码 和重复密码
    css图标库 font-awesome.min.css
    yii配置访问路由权限配置
  • 原文地址:https://www.cnblogs.com/liu2687479342/p/14691339.html
Copyright © 2020-2023  润新知