`
bluenemo
  • 浏览: 176240 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java静态方法笔记

阅读更多
Java中的静态方法只能继承,不能重写!!

官方文档是这样写的:

Class methods


If a subclass defines a class method with the same signature as a class method in the superclass, the method in the subclass hides the one in the superclass.

如果一个子类定义了一个和父类静态方法中相同的方法(即方法名,参数和返回类型相同),则该类隐藏了父类中的这个方法。

The distinction between hiding and overriding has important implications. The version of the overridden method that gets invoked is the one in the subclass. The version of the hidden method that gets invoked depends on whether it is invoked from the superclass or the subclass

而该隐藏的静态方法是否被调用,取决于是父类(引用)还是子类(引用)调用了该静态方法


以下是一个例子:
public class Test2
{
    public static void main(String[] args)
    {

       //需要注意的是,这里跟以往的父类引用指向子类对象有点不用


       //这个子类创建的对象是由子类类型“N”引用的,所以调用output方法将输出“N”


        N n = new N();
        n.output();

      //这个子类创建的对象是由父类类型“M”引用的,所以调用output方法将输出“M”
        M m = new N();
        m.output();
    }
   
}

class M
{
    public static void output()
    {
        System.out.println("M");
    }
}

class N extends M
{
    public static void output()
    {
        System.out.println("N");
    }
}


上述例子中如果N类中的output方法没有static修饰,则会报不能重写的编译错,所以static可以这样来解释:加上static是隐藏了父类中的方法,而不是重写。

同样的,如果父类中的方法不是静态的,那么子类中的同名方法也不可以是静态的,也就是说静态的方法不能被覆盖,静态的方法也不能覆盖非静态的,总之一句话:静态的都不能覆盖,要么全静态,要么全非静态。
分享到:
评论

相关推荐

    java笔记静态成员

    java基础的几个例题包括静态成员,booblean数据类型的介绍

    达内Java培训-CoreJava全程笔记(WORD唐亮版)

    CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 ...

    Java 面向对象笔记

    Java面向对象笔记 Java面向对象知识点分成7部分:对象类、继承多态、构造器、类包内外访问权限、各种静态内部类、抽象函数、接口

    Java学习笔记

    自己在java学习过程中的笔记,从最基础的创建java环境,java的基础知识,java变量的内存存储过程,到容器,异常,多线程等都有详尽涉及。 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里...

    java summary(java笔记)

    学习java的一些笔记和个人总结 9、Collection 和 Collections的区别。  Collection是集合类的上级接口,继承与他的接口主要有Set 和List.。Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种...

    java基础java笔记

    Java快速复习,笔记,面向对象入门,为什么用户java,JDK,JVM,JIT,JRE,jvm运行结构图,数组,封装,方法,构造,重载,static,继承,重写,final,抽象内,接口,lambda表达式,异常,ocp原则,内的生命周期,静态标准内存图

    [java]读书笔记整理:一切都是对象

    可用关键字static来标识某个对象的特定元素是静态的,但java对象本身从来不会存放在静态存储空间里。 5) 常量存储 常量值通常直接存储在程序代码内部,这样做是安全的,因为它们永远不会被改变。有时,在嵌入式...

    java学习笔记 初学者必读

    7.4. 静态变量,方法和类 7-20 7.5. Singleton模式 7-22 7.6. final关键字 7-22 7.6.1. final变量不能被改变; 7-22 7.6.2. final方法不能被改写; 7-23 7.6.3. final类不能被继承; 7-23 7.6.4. String 类 7-23 7.7. ...

    达内 java云笔记 初始化 静态页面

    看到网上不少同学在找云笔记初始资料,正好我这有一份,就打包上传了,5个html静态页面,以及相关的美化页面等都齐全,需要的同学可以下载.

    \java超强笔记(超级经典)

    静态方法可以是泛型方法(在修饰符和返回值之间写泛型),但是不可以使用类的泛型。 static void copyArrayToList(Object[] os,List<T> ls){ //错误,T为类的泛型 } static <E> void ...

    java学习笔记

    关于java学习的随身笔记,java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言...

    JAVA web复习笔记.docx

    1.静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 *如: html,css,JavaScript 2.动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源...

    观看韩顺平学习整理java的笔记到异常

    帮助大家复习java基础知识其中有 hashCode 2 toString 2 finalize 2 用已学知识做出简单的房屋出租系统 3 类方法使用注意事项和细节讨论 4 main()方法 4 代码块 4 代码块使用注意事项和细节 5 单例模式 6 final...

    CoreJava笔记

    CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 ...

    java学习笔记-java思维导图流程图表格整理

    Java学习笔记 1 命令行运行 1 Java基础 1 注释 1 单行注释 1 多行注释 1 文档注释 1 标识符和关键字 2 数据类型 4 类型转换 7 变量 9 基本运算符 10 包机制 12 Javadoc 12 使用命令行生成 12 使用idea生成 12 Java...

    达内 CoreJava老师笔记汇总

    CoreJava DAY10 主方法,静态导入,包装类,枚举 62 CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 集合 Set 85 CoreJava DAY14 集合 Map 92 CoreJava DAY15 异常、断言 98 CoreJava DAY16 ...

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...

    JAVA se+ee 笔记

    JAVA笔记。涵盖了一部分其他知识。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象...

    狂神说springboot员工管理系统静态资源.zip

    狂神说springboot员工管理的静态资源,狂神说java课程链接:https://space.bilibili.com/95256449/

    java基础笔记

    java基础笔记整理适合初学菜鸟参考! 从java语法基础到API无需整理,纯营养,完全精华,简洁精辟! 13.什么是类变量? 类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的是相同的结果,同样...

Global site tag (gtag.js) - Google Analytics