Java 面向对象—杂项(方法不能重写,修饰符,变量)

一、哪些方法不能被重写?

  1、final 修饰的不能重写

  2、static 修饰的不能重写

  3、private 修饰的,因为私有的在子类中不可见

  4、如果跨包的话,修饰符缺省的也不能被重写,因为缺省的跨包不可见

二、修饰符

  1、修饰外部类

      权限修饰符:public 和 缺省的

      其他修饰符:final

  2、方法

      权限修饰符:四种

      其他修饰符:final、static、native

  3、成员变量

      权限修饰符:四种

      其他修饰符:final、static

  4、代码块

      修饰符:static 或 没有

三、变量

  1、变量的分类

    (1)成员变量

        ① 类变量:静态的成员变量

        ② 实例变量:非静态的成员变量

    (2)实例变量

  2、变量的区别

    (1)声明的位置

        成员变量:类中方法外

        局部变量

            ① 方法()中形参列表

            ② 方法体{}中局部变量

            ③ 代码块中局部变量

    (2)在内存中存储的位置

        成员变量:

            ① 类变量:方法区

            ② 实例变量:堆

        局部变量:

            栈:

                ① 虚拟机栈:非 native 方法的局部变量

             ② 本地方法栈:native 方法的局部变量 

    (3)默认值

        成员变量:如果没有赋值,会有默认值

        局部变量:没有默认值,必须定义,赋值,才能使用

    (4)修饰符

        成员变量: 四种权限修饰符;static,final

        局部变量:final

    (5)生命周期

        成员变量

            ① 类变量:随着类的加载而分配空间,随着类的卸载而消亡,每个对象都是共享的

            ② 实例变量:随着对象的创建而分配空间,随着对象被垃圾回收而回收,每个对象是独立的

        局部变量:方法调用时,在栈中分配空间,方法调用结束就消亡

    (6)作用域

        成员变量:

            ① 类变量:在本类中可以随便使用;在其他类中,用“类名.” 或 “对象.” 使用。

            ② 实例变量:在本类中除了静态成员不能使用,其他都可以使用;在其他类中,用“对象.” 使用。

        局部变量:有作用域,超过作用域就不能使用了

原文地址:https://www.cnblogs.com/niujifei/p/11926120.html