zoukankan      html  css  js  c++  java
  • 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修饰类是没有意义的。

  • 相关阅读:
    【css3】使用filter属性实现改变svg图标颜色
    Live CD
    Linux定时任务 crontab(-l -e)、at、batch
    linux图形界面 KDE、GNOME
    shell脚本3——调试
    shell脚本2——控制语句
    bash:双引号和单引号
    shell脚本1——变量 $、read、``
    SSH
    Linux关机、重启、退出
  • 原文地址:https://www.cnblogs.com/liu2687479342/p/14691339.html
Copyright © 2011-2022 走看看