`
bomb2121
  • 浏览: 5075 次
  • 性别: Icon_minigender_1
  • 来自: 未知
最近访客 更多访客>>
社区版块
存档分类
最新评论

静态方法继承和覆盖

    博客分类:
  • J2SE
F# 
阅读更多

static的方法到底能不能覆盖?

1.定义StaticExt类

package com.freelunch.test;

public class StaticExt {
	
	public static  void test()
	{
		System.out.println("father");
	}
}

 
 2.定义StaticExt 的子类StaticExtSon

package com.freelunch.test;

public class StaticExtSon extends StaticExt{
	
	public  static void test()
	{
		System.out.println("son");
	}
	
	public static void main(String[] args) {
		StaticExtSon.test(); // "son"
		
		new StaticExtSon().test(); // "son"
		
		StaticExt f = new StaticExtSon();
		f.test();// "father" 
	}
}

 

输出:

son
son
father

 

3. 结论

静态方法只与定义时所在的类相关,在编译期就已经绑定到某个类。可以继承,但不能在子类中被同名方法覆盖。

由定义引用的类型决定调用的是父类还是子类的方法。

 

分享到:
评论
5 楼 hzwq 2010-06-06  
无意搜到了这个帖子
我为什么觉得静态方法是不能被继承的呢?也就根本谈不上覆盖了
当StaticExtSon没有写test()方法时,根本就不能使用StaticExtSon.test()静态方法。
楼主的例子只能说明静态方法是早绑定。
4 楼 bomb2121 2009-09-05  
qianhd 写道
这种帖子不隐藏 只会对后来人产生误导

可能我的表述确实有些问题,对新手来说会有一定的误导,献丑了 :(
PS:各位大哥说的有理,但我也没有说静态方法能够被覆盖呀。
3 楼 Emiya_wang 2009-09-04  
静态方法是不能被覆盖的  而是被隐藏了
通过父类的引用调用的是父类的静态方法
2 楼 qianhd 2009-09-04  
这种帖子不隐藏 只会对后来人产生误导
1 楼 raomengwen 2009-09-04  
static的方法是不能被覆盖的

相关推荐

    java之中的静态变量与静态方法的继承与覆盖问题.doc

    java之中的静态变量与静态方法的继承与覆盖问题.doc

    Java中的方法和变量在继承时的覆盖问题

    变量和方法覆盖和隐藏的不同:一个类的实例无法通过使用全局名或者强制自己转换为父类型,以访问父类中被隐藏的方法,然而强制转换子类为父类型之后,可以访问父类中被隐藏的变量。另外静态方法不能覆盖父类的实例...

    Java源码小合集:继承和多态相关的例子.rar

    继承和多态的相关Java源码下载,比较散,像覆盖和重载、对象类Object和它的toString()方法、多态性、动态绑定和一般程序设计、数组线性表ArrayList类、final类、方法和变量、数据域和静态方法的隐藏、调用父类的方法...

    重载与覆写/重写的区别

     多态性是面向对象编程的一种特性,和方法无关, 简单说,就是同样的一个方法能够根据输入数据的不同,做出不同的处理,  即方法的重载——有不同的参数列表(静态多态性)  而当子类继承自父类的相同方法,...

    实验2 类和继承(4学时)

    掌握Object类中equals方法和toString方法的覆盖方法。 二、实验内容 1、设计一个名为figure的图形软件包(package)。包中包含三角形、矩形、圆三个类。要求:(1)每个类都要构造方法并为成员设置get和set方法;(2...

    python面向对象day03.txt

    静态方法 @staticmethod 类名.静态方法名(传参) 对象.静态方法名(传参) 类内的 __slots__ 列表属性 class Student: __slots__ = ['name', 'score'] 类的文档字符串 类内的 __doc__属性绑定文档字符串 继承 ...

    Java入门教程(微学苑)-part1

    4.5 继承中的方法的覆盖和重载 65 4.6 多态和动态绑定 66 4.7 动态绑定 69 4.8 instanceof 运算符 70 4.9 多态对象的类型转换 71 4.10 Java static关键字以及Java静态变量和静态方法 72 4.11 static 的内存分配 73 ...

    Javascript编程之继承实例汇总

    子类中调用父类的构造函数来维护的,该继承法能实现多重继承,但只能继承父类的共有方法,无法继承静态方法,而且不能用instanceof来验证实例。 function a(){ this.say=function(){ alert("happy new

    详解PHP后期静态绑定分析与应用

    可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。 self,parent 和 static 这三个特殊的关键字是用于在类定义的内部对其属性或方法进行访问的。 parent用于调用父类中被覆盖的属性或方法(出现在...

    java程序员必知的

     final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是 Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此...

    Elevenyxy.zip

    创建两个类Car和Motorbike,均继承自Vehicle,并在这两个类中实现wheelsNum方法。在Car类中应当显示“四轮车”信息,而在Motorbike类中应当显示“双轮车”信息。创建另一个带main方法的类Test,在其main方法中使用...

    JAVA面试题最全集

    静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法? 50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其子类)的finalize()方法在什么情况下被调用? 52....

    java8源码-Java8NewSpecaility:Java8新特性之入门

    静态方法:允许在已有的接口中添加静态方法,接口的静态方法属于接口类本身,不被继承。也需要提供方法的 实现。 默认方法和静态方法的访问 .接口的静态方法:直接用接口的类名.方法名 .接口的默认方法:得到接口的...

    java初学者必看

    9.3.3 静态方法覆盖 9.3.4 覆盖与异常抛出 9.3.5 抽象方法覆盖 9.3.6 覆盖与重载 9.4 静态绑定与动态绑定 9.4.1 静态绑定 9.4.2 动态绑定 9.5 抽象类 9.5.1 抽象类概念 9.5.2 抽象类应用 9.5.3 抽象类注意...

    继承和多态的相关Java源码下载

    继承,多态,Java源码 继承和多态的相关Java源码下载,比较散,像覆盖和重载、对象类Object和它的toString()方法、多态性、动态绑定和一般程序设计、数组线性表ArrayList类、final类、方法和变量、数据域和静态方法的...

    C# 基础教程

    5.3.1方法覆盖 53 5.3.2多态性 54 5.4 静态方法 58 5.5 本章小结 59 5.6 实战演练 59 第六章 属性、数组和索引器 60 6.1 属性——智能字段 60 6.1.1定义和使用属性 61 6.1.2编译器的工作原理 62 6.1.3 只读属性 63 ...

    leetcode题目变种-CS-Leetcode-Problems:基于CS1.0-CS2.2主题的Leetcode问题链接

    属性和方法 访问修饰符、组合和设计 继承和覆盖 多态性 从内置和重载继承 函数参数和重载 装饰器 抽象类和静态/类方法 多重继承和混合 数组 其他(结合上述主题的面试题) 堆栈和队列 数组和链表 搜索算法和递归 ...

    vs没报错leetcode报错-AndroidInterview:Android面试的代码示例

    静态方法可以被覆盖和覆盖吗? - 超载 - 是,覆盖 - 否 -。 坚硬的 为什么组合比继承好? —— 干净的代码 算法如何估计内存消耗? - 同样在 O() 以及计算复杂度方面 - 设计模式 设计模式:创造型、行为型、结构型 ...

    java编程练习题

    并调用他们的属性和方法。 7,写Shape类,要求如下: 1.int类型属性x和y,分别表示图形的中心点坐标 2.无参构造器 3.构造器,对x和y进行初始化 4.draw()方法,输出"Shape draw" 写Circle类,继承Shape类,要求...

    java8集合源码-java8:java8

    java8集合源码 目录 要求 Wymagania:IDE(Intellij Idea、Eclipse 等)z JDK 8 i git、żeby ...它有:抽象方法、默认方法和静态方法。 @FunctionalInterface public interface Function { R apply(T

Global site tag (gtag.js) - Google Analytics