可以重写静态方法,但重写后的静态方法不支持多态。

其实static根本就没有重写之说。static方法引用的时候应该用类名来引用,而不是对象。同时static方法不参与继承,所以在继承体系里面也不存在重载的说法。

不能被重写,例子:

class A{
public static void a(){
System.out.println("a");
}
}
class B extends A{
public static void a(){
System.out.println("b");
}
}
public class Test {
public static void main(String[] args) {
A a = new B();
a.a();//输出结果是a
}
}

可以继承,例子:

class A{
public static void a(){
System.out.println("a");
}
}
class B extends A{} public class Test {
public static void main(String[] args) {
B.a();//输出a,证明静态方法可以被继承
}
}

静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有static关键字修饰,那么该子类的方法会把原来继承过来的父类的方法隐藏,而不是重写。通俗的讲就是父类的方法和子类的方法是两个没有关系的方法,具体调用哪一个方法是看是哪个对象的引用;这种父子类方法也不在存在多态的性质。

java不推荐用对象调用static方法,这会使人混淆,请大家注意。

 

这也是为什么abstract修饰的method是不可同时是static的原因:

abstract修饰方法,子类需要重写去实现,主要用于各个子类的实例对象;

static修饰方法,则方法不属于某个对象,属于class,可用class名.方法名(),进行调用;

简单的说abstract实例对象;

而static属于类。

所以static方法不能是abstract方法

JAVA中的static修饰的方法不能被重写的更多相关文章

  1. static修饰的方法不能被重写可以被继承

    今天我们谈谈为什么抽象类中不能有静态的抽象方法以及static修饰的方法不能被重写可以被继承 1 static修饰的方法不能被重写可以被继承我们知道static修饰的方法为静态方法,可以直接使用类名. ...

  2. Java中的static修饰int值做全局变量与static修饰词初始化顺序

    先看一道题 public class HasStatic{ private static int x=100; public static void main(String args[]){ HasS ...

  3. Java中的Static修饰符

    static(静态.修饰符):static修饰成员变量时:static修饰成员变量时,那么该成员变量的数据就是一个共享的数据. 静态成员变量的访问方式:方式一: 使用对象进行访问. 对象.属性名 方式 ...

  4. java中的static使用--静态变量、静态方法

    Java 中的 static 使用之静态变量 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 s ...

  5. Java中的static的使用

    Java中的static使用之静态变量 神话丿小王子的博客主页 1.Java 中被static修饰的成员称为静态成员或类成员.它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享.且优先于对象 ...

  6. Java 中的 static 使用之静态变量

    大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中 ...

  7. JAVA中的 static使用

    主要内容: 1.静态变量 2.静态方法 3.静态代码块 静态变量 我们知道,可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员 ...

  8. Java 中的 static 使用

    Java语言基础--static 0.目录 8.static 8.1 Java 中的 static 使用之静态变量 8.2 Java 中的 static 使用之静态方法 8.3 Java 中的 sta ...

  9. Java中各种(类、方法、属性)访问修饰符与修饰符的说明

    类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所 ...

随机推荐

  1. JSP三大指令 /9大内置对象 /Javabean / EL

    一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info="xxx". ...

  2. webkit.net使用方法日记

    1.首先貌似只有36位的库,所以项目也要修改为X86平台 2.里面的所有dll库文件都要拷贝到项目中去,包括WebKitBrowser.dll.manifest  此文件一定要拷贝过去. 3.然后引用 ...

  3. 使用Markdown在博客里插入代码

    今天尝试了一下在线使用Markdown编辑器写博客,发现想要实现下面这样的效果还真得折腾一会儿. <html> <head> <meta charset="ut ...

  4. jx3dps开发日记

    2014.11.13 子级过滤 关于optgroup这个东西,一开始以为是个包裹元素,但是一般来说,包裹元素给一个class,那么让这个class show()应该它包裹的元素也跟随show,可结果是 ...

  5. [BZOJ 3669] [Noi2014] 魔法森林 【LCT】

    题目链接:BZOJ - 3669 题目分析 如果确定了带 x 只精灵A,那么我们就是要找一条 1 到 n 的路径,满足只经过 Ai <= x 的边,而且要使经过的边中最大的 Bi 尽量小. 其实 ...

  6. [BZOJ 3564] [SHOI2014] 信号增幅仪 【最小圆覆盖】

    题目链接:BZOJ - 3564 题目分析 求最小椭圆覆盖,题目给定了椭圆的长轴与 x 轴正方向的夹角,给定了椭圆长轴与短轴的比值. 那么先将所有点旋转一个角度,使椭圆长轴与 x 轴平行,再将所有点的 ...

  7. Ecshop wap

    http://www.08kan.com/gwk/MzA3MDMxMzAxMw/200091492/1/c38b5937e4e819d9908fe3ae964e3dfc.html

  8. 如何在DJANGO里,向有外键(一对多和多对多)的DB里插入数据?

    需要插入的数据表结构如下: class UserInfo(models.Model): user_id =models.AutoField(primary_key=True) user_name=mo ...

  9. bzoj2131

    首先不难想到对t排序,有f[i]=max(f[j])+v[i] tj<=ti且abs(pi-pj)/2<=ti-tj;要想优化,肯定从优化转移入手先去绝对值,当pi>=pj时,可得2 ...

  10. Linux下如何挂载FAT32格式USB设备

    挂u盘之前,运行命令cat /proc/partitions,看看现在系统中有哪些分区.插上u盘以后,再次运行上述命令,看看多出来什么分区.通常是sda1. 1.插入U盘 2.输入 fdisk -l ...