在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`关键字扮演着至关重要的角色,它被用于声明类成员(如变量、方法)为静态的。静态成员不依赖于任何特定的对象实例,而是与类本身绑定,这意味着无论该类有多少个实例,静态成员只会有一份...
Flex教程系列, ...Flex教程系列之(五) AS3语法——静态常量继承和接口 http://download.csdn.net/source/1161921 Flex教程系列之(六) AS3语法——数组和类型转换 http://download.csdn.net/source/1161978
Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...
Java面试题是每个Java开发者在求职过程中必须面对的挑战,涵盖范围广泛,从基础概念到高级特性和设计模式。这份终极列表包含115个Java面试题和答案,旨在帮助求职者全面准备,以期在面试中表现出色。以下是部分核心...
Java 中静态方法和非静态方法的区别 Java 作为一种功能强大、可靠性高、跨平台的编程语言,广泛应用于企业级应用开发、移动应用开发、云计算、大数据处理等领域。了解静态方法和非静态方法的区别是 Java 编程的基础...
方法名(参数)}”这种格式来调用Java类的静态方法。 开发环境:IntelliJ IDEA 2019.2.2 Spring Boot版本:2.1.8 新建一个名称为demo的Spring Boot项目。 1、pom.xml 加入Thymeleaf依赖 <groupId>org.spring...
- Java 8引入了默认方法和静态方法,增强了接口的功能。 11. **异常处理** - try-catch-finally:捕获和处理异常,finally块确保资源的释放。 - throws和throw关键字:声明和抛出异常。 12. **集合框架** - ...
### 华为——静态时序分析与逻辑分析 在现代集成电路设计中,**静态时序分析(Static Timing Analysis,简称STA)**与**逻辑分析**是确保芯片性能和可靠性的关键步骤。本文将深入探讨这些概念及其在设计验证中的...
Cisco Packet Tracer - 路由配置——静态配置.zip
根据提供的文档信息,本文将对Java中的方法、内存结构及方法重载等核心概念进行深入解析。 ### 一、方法(Method) #### 1. 什么是方法 方法是Java编程语言中用于封装特定功能的代码块。它允许程序员将程序划分为...
在Linux环境中,C语言可以通过Java Native Interface (JNI) 来调用Java的静态和非静态方法,实现两者之间的交互。JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互,使得C/C++程序员可以编写...
### Java生成静态页面——Freemarker实例教程 #### 一、Freemarker简介 Freemarker是一款基于模板的通用工具,它可以嵌入到各种应用程序中,帮助开发者将动态数据渲染成HTML、XML或其他文本格式的文件。对于提高...
3. **调用类的静态方法**。 4. **通过反射机制(如`Class.forName("com.bzu.csh.Test")`)来初始化类**。 5. **初始化类的子类**。 6. **JVM启动时作为主类的类**。 例如,如果我们有一个`Singleton`类,其中包含...
标题 "Netjava Myproject 能力源自模仿——POPSTAR" 提到的是一个关于 Netjava Myproject 的学习和发展过程,其中 POPSTAR 可能是作为学习的榜样或参考对象。这个项目可能涉及到用 Java 语言开发的网络应用,而...
3. **静态工作点与稳定性**: - 稳定的静态工作点对于避免自激振荡和热漂移至关重要。合适的Q点可以降低温度系数影响,保证放大电路在不同环境温度下有稳定表现。 4. **2N2924 NPN晶体管**: - NPN型晶体管在共射...
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
本示例将详细介绍如何在JNI中调用Java的静态方法。 首先,我们需要了解JNI的基本结构。一个JNI程序通常包括Java类(包含JNI函数声明)和本地源代码(C/C++实现)。在Java类中,我们会定义`native`关键字修饰的静态...
《软件质量保证与测试——静态白盒测试》 在软件工程领域,确保软件质量是至关重要的环节,而静态白盒测试则是其中一种有效的方法。白盒测试,又称透明盒测试或结构测试,它关注的是软件的内部逻辑和结构,而非其...
计算机网络实验报告——静态路由与缺省路由的使用 本实验报告主要涉及静态路由与缺省路由的使用,旨在帮助读者理解计算机网络中的路由机制。下面是本实验报告的详细知识点总结: 一、实验环境 在本实验中,我们...