`
shinelith
  • 浏览: 9014 次
  • 性别: 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. **集合框架** - ...

    华为——静态时序分析与逻辑分析

    ### 华为——静态时序分析与逻辑分析 在现代集成电路设计中,**静态时序分析(Static Timing Analysis,简称STA)**与**逻辑分析**是确保芯片性能和可靠性的关键步骤。本文将深入探讨这些概念及其在设计验证中的...

    Cisco Packet Tracer - 路由配置——静态配置.zip

    Cisco Packet Tracer - 路由配置——静态配置.zip

    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`类,其中包含...

    Netjava Myproject 能力源自模仿——POPSTAR

    标题 "Netjava Myproject 能力源自模仿——POPSTAR" 提到的是一个关于 Netjava Myproject 的学习和发展过程,其中 POPSTAR 可能是作为学习的榜样或参考对象。这个项目可能涉及到用 Java 语言开发的网络应用,而...

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

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

    jni调用java静态方法

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

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

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

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

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

    java面向对象程序设计——董小园著

    3. 继承:另一个关键特性,允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码复用。Java中的extends关键字用于声明继承关系。 4. 多态:多态性允许我们使用父类引用指向子类对象,这样可以实现...

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

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

Global site tag (gtag.js) - Google Analytics