• Java 访问修饰符大全详解


    鉴于笔试面试总会遇到,决心仔细认真梳理一下:

    1:涉及的关键字:public,default(表示缺省),protected,private,static,final,abstract.

    2:关键字含义大家都懂,现在逐场景总结他们的使用场合。

    3:修饰类时:

      1.普通类:public,default,final

           public类:此类工程内可见

            1.一个.java文件中可以没有public类,如有,public类类名必须和文件名相同

                

               (此处其实不需要非要有类“Main")

            2.当一个.java文件有public类且有程序入口时public static void main(String[] args),入口必须在public类中。

                

              个人理解:当加载一个类文件时,它会按文件名寻找public类,如果找到了,则只会在public类中寻找程序入口,否则依次寻找每个类。

           default:此类具有包内可见

           final:此类不允许继承

      2.抽象类public,default,abstract

          特点:1.无法创建此类的对象,除非子类实现所有抽象方法,否则子类还是抽象类。

             2.可以没有任何抽象方法,用于阻止创建某个类的对象

          public,default用法同上,修饰类时abstract和final互斥

      3.接口:写也是public abstract,不写也默认public abstract.

          当手动写上public时,如果.java文件名和接口名不同,则报错。

      4.内部类:

    4:用于修饰属性时:

        所有场景public,default,protected,private,static,final 都能任意组合使用。

        顺序:public static final int 或 public final static int .

        关于接口的属性:

            1.默认是public static final的。

            2.必需被常量或非常量表达式初始化。

    5:用于修饰方法时:

        普通类:public,default,protected,private,static,final 都能任意组合使用

            final方法表示不能覆盖,而非不能重载,重载指函数签名不同(函数名,参数类型,顺序,个数,)

        抽象类:

            抽象函数只能用设置可见性,包括(public,protected,default)。

        接口:

            java8中给接口里的方法增加了default(真default)和static关键字。

            接口中的非抽象方法:

              1.静态方法:可以同static 或public static 修饰,默认是public的,即使不写public。

              2.非静态方法:可以用default(真default)或public default修饰,默认是public的。当实现类覆盖此方法时,也必须是public的,因为覆盖方法不能减小方法可见性。

            接口中的抽象方法:

              只能且默认是 public abstract

        

    总结:

      对于类,只能用public ,default, abstract,final修饰。当用abstract修饰时,即为抽象类。public类应定义在自己的文件中。

      对于属性:常规类public ,default, protected ,private,final,static均可,接口中的属性默认public static final.

      对于方法:public ,default, protected ,private,final,static abstract均可,final与abstract互斥,抽象方法中能用public或protected修饰,在接口中只有public

  • 相关阅读:
    JAVAEE学习day01
    learn MongoDB (二) 常用修改器
    learn MongoDB (一) 常用命令行操作
    js事件冒泡和捕获
    vim 常用设置
    void 0 等于 undefined 为什么不直接用undefined
    原生js操作class
    WAI-ARIA roles
    css 效果收集
    前端文章收集
  • 原文地址:https://www.cnblogs.com/lshao/p/9017127.html
Copyright © 2020-2023  润新知