`
shinelith
  • 浏览: 8926 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java那点儿事3——静态的方法

阅读更多
在Java中静态方法的使用也是再普遍不过的了,静态的对象与方法的优点不用我多说了,你一定也是知道。 你会问那笔者在这里要说什么呢?笔者反问:你知道静态方法能被重写么?
或许你知道静态方法不能被重写,那么你能确定下面这个例子能编译通过么?

class Animal{

	static void method(){
		System.out.println("Animal");
	}
}

public class Dog extends Animal{
	
	static void method(){
		System.out.println("Dog");
	}
	
	public static void main(String[] args){
		Animal[] animals = { new Animal() , new Dog };
		for(int i=0;i<animals.length;i++){
			animals[i].method();
		}
	}
}


能确定么?去试试吧,这段代码真的能够编译通过,我不骗你的。不是说静态方法不能被重写么?确实不能重写,其实method的这个方法根本就不是重写,在这种情况下他叫做重定义。
(上面的代码结果为 Animal Animal)

重新来编写一下main方法
public static void main(String[] args){
	Animal a = new Animal();
	Dog d = new Dog();
	
	a.method();
	b.method();
}

修改之后,结果是什么呢?
结果是
Animal
Dog
他是重写么?Animal和Dog中存在两个不同的method方法的副本。在继承的时候静态方法也是会被继承的,如果在子类未对其重定义那么会调用超类的方法,如果重定义,超类的方法会被隐藏。最后观点:静态方法不能被重写,更确切的说静态方法不会被重写。
分享到:
评论

相关推荐

    Java中的Static块与静态方法

    在Java编程语言中,`static`关键字扮演着至关重要的角色,它被用于声明类成员(如变量、方法)为静态的。静态成员不依赖于任何特定的对象实例,而是与类本身绑定,这意味着无论该类有多少个实例,静态成员只会有一份...

    Flex教程系列之(五) AS3语法——静态常量继承和接口

    Flex教程系列, ...Flex教程系列之(五) AS3语法——静态常量继承和接口 http://download.csdn.net/source/1161921 Flex教程系列之(六) AS3语法——数组和类型转换 http://download.csdn.net/source/1161978

    Java中的静态变量静态方法静态块与静态类.docx

    Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...

    115个Java面试题和答案——终极列表

    Java面试题是每个Java开发者在求职过程中必须面对的挑战,涵盖范围广泛,从基础概念到高级特性和设计模式。这份终极列表包含115个Java面试题和答案,旨在帮助求职者全面准备,以期在面试中表现出色。以下是部分核心...

    Java中静态方法和非静态方法的区别.docx

    Java 中静态方法和非静态方法的区别 Java 作为一种功能强大、可靠性高、跨平台的编程语言,广泛应用于企业级应用开发、移动应用开发、云计算、大数据处理等领域。了解静态方法和非静态方法的区别是 Java 编程的基础...

    java基础——————试题库

    - Java 8引入了默认方法和静态方法,增强了接口的功能。 11. **异常处理** - try-catch-finally:捕获和处理异常,finally块确保资源的释放。 - throws和throw关键字:声明和抛出异常。 12. **集合框架** - ...

    数据结构课程设计——静态单链表操作

    在这个“数据结构课程设计——静态单链表操作”中,我们将探讨静态单链表这一特定的数据结构及其相关操作。静态单链表不同于传统的动态链表,它的节点在内存中是预先分配好的,而不是在运行时动态创建。 首先,我们...

    7.java学习第七章——方法+内存结构讲解+方法重载.pdf

    根据提供的文档信息,本文将对Java中的方法、内存结构及方法重载等核心概念进行深入解析。 ### 一、方法(Method) #### 1. 什么是方法 方法是Java编程语言中用于封装特定功能的代码块。它允许程序员将程序划分为...

    LINUX C调用JAVA的静态方法和非静态方法(实例方法)小实例

    在Linux环境中,C语言可以通过Java Native Interface (JNI) 来调用Java的静态和非静态方法,实现两者之间的交互。JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互,使得C/C++程序员可以编写...

    java生成静态页面——Freemarker实例教程.docx

    ### Java生成静态页面——Freemarker实例教程 #### 一、Freemarker简介 Freemarker是一款基于模板的通用工具,它可以嵌入到各种应用程序中,帮助开发者将动态数据渲染成HTML、XML或其他文本格式的文件。对于提高...

    深入java虚拟机(三)——类的生命周期(下)类的初始化1

    3. **调用类的静态方法**。 4. **通过反射机制(如`Class.forName("com.bzu.csh.Test")`)来初始化类**。 5. **初始化类的子类**。 6. **JVM启动时作为主类的类**。 例如,如果我们有一个`Singleton`类,其中包含...

    JAVA静态方法和非静态方法的区别和实例.doc

    JAVA静态方法和非静态方法的区别和实例 静态方法和非静态方法是 Java 编程语言中两个基本概念,它们在编程实践中扮演着重要角色。了解它们的区别和使用场景对于编写高效、可维护的代码至关重要。 什么是静态方法?...

    中南大学模电仿真实验——静态工作点对放大电路性能指标的影响.rar

    3. **静态工作点与稳定性**: - 稳定的静态工作点对于避免自激振荡和热漂移至关重要。合适的Q点可以降低温度系数影响,保证放大电路在不同环境温度下有稳定表现。 4. **2N2924 NPN晶体管**: - NPN型晶体管在共射...

    jni调用java静态方法

    本示例将详细介绍如何在JNI中调用Java的静态方法。 首先,我们需要了解JNI的基本结构。一个JNI程序通常包括Java类(包含JNI函数声明)和本地源代码(C/C++实现)。在Java类中,我们会定义`native`关键字修饰的静态...

    软件质量保证与测试——静态白盒测试 (1).pdf

    《软件质量保证与测试——静态白盒测试》 在软件工程领域,确保软件质量是至关重要的环节,而静态白盒测试则是其中一种有效的方法。白盒测试,又称透明盒测试或结构测试,它关注的是软件的内部逻辑和结构,而非其...

    计算机网络实验报告——静态路由与缺省路由的使用.pdf

    计算机网络实验报告——静态路由与缺省路由的使用 本实验报告主要涉及静态路由与缺省路由的使用,旨在帮助读者理解计算机网络中的路由机制。下面是本实验报告的详细知识点总结: 一、实验环境 在本实验中,我们...

    Java设计模式——代理设计模式(静态代理和动态代理)

    3. **创建代理对象**:使用`Proxy.newProxyInstance()`方法动态生成代理对象,这个方法需要传入目标类的类加载器、目标类实现的接口数组以及`InvocationHandler`实例: ```java Service proxyService = (Service) ...

    JAVA语言静态变量和静态方法的分析及其应用研究.pdf

    JAVA语言静态变量和静态方法的分析及其应用研究.pdf

Global site tag (gtag.js) - Google Analytics