Java记录 -17- static与final关键字

Java static与final关键字

  1. static关键字:可以修饰属性,也可以修饰方法,还可以用于修饰类。
  2. static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。如果一个成员变量是 static 的,那么我们可以通过 类名.成员变量名 的方式来使用它(推荐使用这种方式)。
  3. static修饰方法:static修饰的方法叫做静态方法。对于静态方法来说,可以使用 类名.方法名 的方式来访问。
  4. 实例方法:子类中的一个实例方法和父类中的实例方法,签名相同,子类方法会 override 父类的方法。

    类方法:如果一个子类定义了一个和父类有同样签名的静态方法,那么这个方法在子类中就会隐藏父类的该静态方法。

    子类不会重写父类的静态方法,而是隐藏。

    官网信息:

    https://docs.oracle.com/javase/tutorial/java/IandI/override.html

  5. 隐藏一个静态方法和重写一个实例方法的重要区别如下:

    1).重写实例方法调用的是子类中的方法;

    2).隐藏静态方法的调用取决于调用来自于父类还是子类。

  6. 静态方法只能继承,不能重写(Override)。
时间: 2024-10-31 16:29:27

Java记录 -17- static与final关键字的相关文章

Java的static和final关键字的用法

static关键字的用法 static的意思是"'静态的",在java里面可用于修饰属性和方法. static关键字的应用应注意以下几种情形: 1.static作用于某个字段,一个static字段对每个类来说只有一份存储空间,而非static字段是每个对象有一份存储空间. 2.static作用于方法的重要用法是不需要创建任何对象直接调用该static方法,这对于main()方法很重要. 3.static不能应用于局部变量. 4.Java中禁止使用全局方法,所以引入static方法通过类

static 和 final 关键字 对实例变量赋初始值的影响

static 和 final 关键字 对实例变量赋初始值的影响 最近一直在看<深入理解Java虚拟机>,在看完了对象内存分配.Class文件格式之后,想深扒一下实例变量是如何被赋上初始值的这个问题的细节. 在2.3.1小节中讲对象创建的时候,讲到内存分配有两种方式:一种是指针碰撞:另一种是空闲列表. 而选择哪种分配方式是由JAVA堆是否规整决定,而JAVA堆是否规整则由虚拟机所采用的垃圾收集器是否带压缩整理功能决定. 我们不管内存分配采用何种方式,当内存分配完成后,虚拟机将分配到的内存空间都初

Java之static与final关键字

static关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类 static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量值也会随之发生变化,如果一个成员变量是static的,那么我们可以通过类名.成员变量名来的方式来使用它(Java推荐使用这种方式) package com.yuanzijian01; class MyStatic{    static int a; } public c

java中static,super,final关键字辨析

1:static关键字 利:1)对对象的共享数据提供单独的空间存储. 2)修饰的方法可以直接被类名调用 弊:1)生命周期长. 2)访问出现限制(只能访问静态) 它可以有静态方法,静态类,静态变量 2:super关键字 1)使用super关键字调用父类的成员变量和成员方法. 格式1:super.成员变量 格式2:super.成员方法([参数1,参数2...]) 2)使用super关键字调用父类的构造方法 格式1:super([参数1,参数2...]) 总结:this代表当前对象(可以输出或地址).

【Java_基础】java中static与final关键字的区别

1.static关键字 经由static关键字修饰的成员为类成员,被所有对象所共享,通常通过类名来引用static成员.类加载的连接阶段将会为静态成员变量在jvm内存的方法区分配空间,并在类的初始化阶段赋初值. 一个类的static成员变量只有“一份”(存储在方法区),无论该类创建了多少对象.看如下的示例: public class StaticDemo { public static void main(String[] args) { People p1 = new People(18);

static与final关键字详解

接口(interface):接口的地位等同于class.接口中的所有方法都是抽象方法.在声明接口中的方法时,可以使用abstract关键字,也可以不使用.通常情况下,都会省略掉abstract关键字. 可以将接口看作特殊的抽象类(抽象类可以有具体方法,也可以有抽象方法,而接口中只能有抽象方法,不能有具体方法). 类可以实现接口.实现用implements表示,代表了某个类实现了某个接口. 一个类实现了某个接口,那么该类必须要实现接口中声明的所有抽象方法.如果该类是抽象类,那么就无需实现接口中的方

面向对象之static与final关键字

final关键字和static关键字 final关键字 final:在翻译过来的意思就是最后的,最终的,不可改变的意思.在Java中同样也是这个意思.那到底什么时候可以用到final来修饰呢?都知道,继承的应用提高了代码的复用性,通过继承,子类可以对父类的方法进行重写,那如果有些父类中的方法是固定的,不想让子类进行重写,要解决这个问题就要用到final关键字,final关键字可以用来修饰类,类的成员,以及局部变量. 1.修饰类:final修饰的类是最终类,不能有子类,不能被继承,但是可以继承其他

夯实Java基础(九)——final关键字

1.前言 Java语言中的final关键字,想必大家都不是很陌生,我们自己用的最多的应该是用来定义常量吧,那么今天我们就来了解final这个关键字的用法,这个关键字还是非常简单的. final从字面意思是不可更改的,最终的意思,它可以用来修饰类.方法.变量(包括成员变量和局部变量).参数. 2.final修饰类 final修饰类,表示该类不能再被继承了,如果一个类它的功能比较完整,不需要扩展功能,我们就可以使用final来修饰.我们最常用String.Integer.System等类就是用fin

关于static以及final关键字

Static关键字: 可以用来修饰类中的属性.类中的方法.以及具体的某一个类. 1.用于修饰属性: 则表示该属性属于整个类,不论有多少个对象实例,所有的实例共同拥有一个static静态的成员变量.该变量属于整个类,而并非是某个具体的实例,直接通过类名就可以访问对应的成员变量. 2.用于修饰方法: 用static修饰的方法称为静态方法,被修饰的静态方法可以通过一个实例来直接进行方法调用,也可以通过类名来直接调用类的静态方法. 关于静态方法的继承问题: 静态方法是可以被继承下来的,但是静态方法的子类

super 、static、final关键字加深记忆哦!还有父子类构造函数调用问题

使用super关键字可以直接调用父类中的构造方法.属性.普通方法 super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行 java中,构造函数不被继承,只是调用,如果父类有无参构造函数,子类可以写构造函数也可以不写构造函数,如果父类只有带参构造函数,那么子类必须也要写一个构造函数,并且调用父类构造函数在函数第一行.原因大致是因为,构造子类时都是需要先调用父类构造函数的,若父类没有了默认构造函数,子类声明调用自己的构造函数时就有问题了,所以此时(父类只有带参构