static关键字什么意思?Java中是否可以覆盖一个private或者是static的方法?
答案:“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。
我的理解:
static修饰成员变量,表示该变量是类变量,属于类而不属于实例对象,所以是可以不通过实例化直接通过类进行访问的,也不会在实例对象的内存空间释放后消失;
static修饰方法,表示该变量是类方法,同样的,在类加载以后就可以自己调用,不需要创建任何类的实例对象。
方法重载:在同一个类中,方法相同,方法的参数个数或者参数类型不同,为了实现方法的多态性。
方法重写(覆盖):重写或覆盖是发生在子类和父类之间,而且是基于动态绑定的,但static修饰的是静态绑定编译的。
覆盖是发生在子类和父类之间,所以private修饰的变量或方法是无法被子类访问的,无法继承,所以更没办法覆盖。
下面是一个例子说明在方法重写中,有没有static修饰的差别。
public class var_test {
public static void main(String[] args) {
supper s=new Sub();
System.out.println(s.greeting()+","+s.name());
}
}
class supper{
static String greeting() {
return "Good night";
}
String name() {
return "Richard";
}
}
class Sub extends supper{
static String greeting() {
return "Good morning";
}
String name() {
return "Dick";
}
}
运行结果:Good night,Dick
结论,实例方法被覆盖,静态方法被隐藏(没有被覆盖)。
static关键字什么意思?Java中是否可以覆盖一个private或者是static的方法?的更多相关文章
- JAVA - 请说明”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
请说明"static"关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? "static"关键字表明一个成 ...
- Java中的内存处理机制和final、static、final static总结
Java中的内存处理机制和final.static.final static总结 装载自:http://blog.csdn.net/wqthaha/article/details/20923579 ...
- Java中是否可以调用一个类中的main方法?
前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ...
- JAVA 中两种判断输入的是否是数字的方法__正则化_
JAVA 中两种判断输入的是否是数字的方法 package t0806; import java.io.*; import java.util.regex.*; public class zhengz ...
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?
笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...
- java中多线程执行时,为何调用的是start()方法而不是run()方法
Thead类中start()方法和run()方法的区别 1,start()用来启动一个线程,当调用start()方法时,系统才会开启一个线程,通过Thead类中start()方法来启动的线程处于就绪状 ...
- html中引入调用另一个公用html模板文件的方法
html中引入调用另一个公用html模板文件的方法 https://www.w3h5.com/post/53.html 这里我使用jquery的方法 <body> <div id=& ...
- Eclipse中的快捷键快速生成常用代码(例如无参、带参构造,set、get方法),以及Java中重要的内存分析(栈、堆、方法区、常量池)
(一)Eclipse中的快捷键: ctrl+shift+f自动整理选择的java代码 alt+/ 生成无参构造器或者提升信息 alt+shift+s+o 生成带参构造 ctrl+shift+o快速导 ...
随机推荐
- Centos 6.5_64bit 下安装 Zabbix server 3.0监控主机的加入
安装Zabbix server 3.0客户端之前需要先关闭selinux和打开10050和10051端口 关闭selinux 1 vi /etc/selinux/config 2 ...
- HDU(1016),打素数环
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 哈哈,状态来了就是不一样,很快就A了. 注意的位置是,最后一个点,要与第一个点比较. #incl ...
- 转:postMan 使用教程
转:https://www.cnblogs.com/alanjl/p/5490922.html 自从开始做API开发之后,我就在寻找合适的API测试工具.一开始不是很想用Chrome扩展,用的 Wiz ...
- libtool: Version mismatch error. 解决方法
在编译一个软件的时候,在 ./configure 和 make 之后可能会出现如下错误: libtool: Version mismatch error. This is libtool 2.4. ...
- 旋度定理(Curl Theorem)和散度定理(Divergence theorem)
原文链接 首先说说格林公式(Green's theorem).对于一段封闭曲线,若其围城的区域D为单连通区域(内部任意曲线围城的区域都属于院区域),则有如下公式: 其中其中L为D的边界,取正方向.如果 ...
- django中的构造字典(二级菜单,评论树,购物车)
1.构造父子结构: 1.1需求样式 客户列表 customer_list /customer/list/ -----> 添加客户 customer_add /customer/add/ ---- ...
- 2、SpringBoot+Mybatis整合------一对一
开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/93398da60c647573645917b2 ...
- 《阿里巴巴Java开发手册》阅读笔记
1.抽象类命名使用 Abstract 或 Base 开头: 异常类命名使用 Exception 结尾: 测试类命名以它要测试的类的名称开始,以 Test 结尾. 2.POJO 类中布尔类型的变量,都不 ...
- 使用nsis开发自定义安装包使用心得,以及遇到坑
因为新公司需要开发pc应用的自定义安装包,开始时候计划使用nsis开发,论坛上面有很多不错的例子,而且完成度很强, 随便拿来修改使用,但是后续的开发过程中遇到的问题就逐个出现. 首先说一下nsis的优 ...
- python核心编程2 第八章 练习
8–2. 循环. 编写一个程序, 让用户输入三个数字: (f)rom, (t)o, 和 (i)ncrement . 以 i为步长, 从 f 计数到 t , 包括 f 和 t . 例如, 如果输入的是 ...