”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

  static是表示静态的意思,它可用来修饰成员变量和成员函数,被静态修饰的成员函数只能访问静态成员,不能访问非静态成员。静态是随着类的加载而加载,因此可以直接用类进行访问。

  覆盖又称为重写,重写就是子类中的方法和子类继承的父类中的方法一样(函数名、参数类型、参数、返回值类型),但子类的访问权限不要低于父类的访问权限。重写的前提是必须要继承,private修饰不支持继承,因此被私有的方法不能重写。静态的方法形式上是可以被重写的,即子类中可以重写父类中的静态方法,但实际上在内存的角度上静态方法是不可以被重写的。   

原文地址:https://www.cnblogs.com/Freak-Lew/p/9190239.html

时间: 2024-10-29 10:23:39

”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?的相关文章

java中什么叫覆盖Override?请给实例

5.覆盖(Override)  (视频下载) (全部书籍) 马克-to-win:方法的覆盖(Override)是指子类重写从父类继承来的一个同名方法(参数.返回值也同). 例1.5.1---本章源码 class AAAMark_to_win {    double f(double x, double y) {        return x * y;    }} class BBB extends AAAMark_to_win {    double f(double x, double yM

Java中访问修饰符public、private、protecte、default

Java中访问修饰符public.private.protecte.default的意义讲解:public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属性以及方法不 仅可以跨类访问,而且允许跨包(package)访问.private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”.被其修饰的类.属性以 及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问.protect: 介于public 和 private 之间的一种访问修饰符,一

Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】

转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录名及文件名中的中文显示为“??”. 原因: FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码. 解决方案: 1.将中文的目录或文件名转为iso-8859-1编码的字符.参考代码: 复制代码 代码如下: String name="目录名或文件名"; name=

static关键字在C和C++中的使用方法

一.C语言的static关键字的两种使用方法 1).用于函数内部修饰变量,即函数内的静态变量.这种变量的生存期长于该函数,是的函数具有一定的"状态",使用静态变量的函数一般是不可重入的,也不是线程安全的,比如strtok() 2)用在文件级别(函数体外),修饰变量或函数,变量该变量或函数只能在文本可见,其他文件看不到,也访问不到该变量或函数. 二.C++语言的static关键字的四种用法 由于C++引入了class,在保持与C语言兼容的同时,static关键字又有了两种新用法: 3).

CompressUtils相关代码,java中文件压缩或解压已经文件的基本操作等方法

java中一些场合我们需要,对上传的压缩包中的内容进行处理,这个时候就用到了解压操作,还有压缩的操作等等,这里直接贴一下代码,以备今后自己可能会用到,还有共享给需要的小伙伴们. import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExceptio

java中重载和覆盖(又称重写)的区别

初次见到这两个单词并没有什么特别的感觉,但是时间长了,却发现书上一会儿用override,一会儿又用overload,搞得我的迷迷糊.于是就做了个总结,希望能对和我一样对这两个概念模糊不清的网友有一个帮助. override 可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用.对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法.除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方

JAVA重载(overload)和覆盖(override)中你所不知道的陷阱

大家都知道重载是指在同一个类中,定义了有相同名称但是有不同参数类型的方法时,到底调用那一个方法会根据参数类型来选择.我们来看下面这个例子: public class ParentClass { } public class ChildClass extends ParentClass{ } public class Test { public void testOverLoad(ParentClass cls){ System.out.println("It's ParentClass"

在java 中一种简单方式的声明静态Map常量的方法

我现在需要在一个类里面放一个HashMap,往里面放一些数据,每次要从数据库中取数据的时候先查找HashMap,看是否已经存在,若存在就直接提取,若不存在就从数据库中抽取数据之后再放到HashMap中,那是否应该把HashMap设置为类的静态变量啊? 若这样设置public static HashMap hmData :就无法往hmSpace 中加入数据了,是否应该New一个对象呢? 常用的声明方式(使用静态代码块): Java代码 public final static Map map = n

Java中ArrayList问题:删除一个ArrayList中的重复元素,注意留意一个问题

该问题有两种方法: 一 利用两个数组,此法简单,不讨论 二 利用一个数组,从第0个开始依次取元素,并在其后元素中查找是否有该元素,有则删掉后面的重复元素,依次遍历.---但是这种情况要特别注意,当后续元素中有连续的重复元素时,如不加上y--使y(待比较的后续元素)回退一个,很可能会因为我们删掉当前重复元素y后其后的连续重复元素顶上,导致忽略掉顶上的重复元素. 代码如下: 1 public static void main(String[] args) { 2 ArrayList array=ne