`
wpf814533631
  • 浏览: 191939 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

static 方法“覆盖”

SUN 
阅读更多

      在java中static(静态)属性以及方法是完全独立于该类的任何对象,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。
      static所标识的属性及方法是在类被加载时被执行一次,static方法是属于类而不是属于对象的,当子类中出现和父类相同形式的static方法时,这并不是一般的方法覆盖,因为static方法属于类本身,而与继承无关,所以子类中与父类中相同形式的static方法并不是方法覆盖。下面的例子可以说明问题。

 

public class SonStatic extends FatherStatic
{
	public static void main(String[] args) {
		FatherStatic father = new FatherStatic();
		SonStatic sun = new SonStatic();
		father.method("我是父类静态方法method");
		sun.method("我是子类静态方法method");
	}
	
	static void method(String str) {
		System.out.println("SunStatic:"+str);
	}
}

class FatherStatic
{
	static void method(String str) {
		System.out.println("FatherStatic:"+str);
	}
}


 
java中方法覆盖的标志如下:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

 

分享到:
评论

相关推荐

    visual c++ vc Static控件背景透明时 文字覆盖问题的解决方案.zip

    visual c++ vc Static控件背景透明时 文字覆盖问题的解决方案.zip

    c语言中static的用法详细示例分析

    static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。 代码如下:int a ;int main(){ int b ...

    重载与覆写/重写的区别

    (2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。  如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。 (3)子类函数的访问...

    java---- 封装,接口,继承,覆盖,构造过程,多态,static、this、super、final用法

    java---- 封装,接口,继承,覆盖,构造过程,多态,static、this、super、final用法

    Java复习题及答案

    答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。 3、请讲述String 和StringBuffer的区别。 答:String 类所定义的对象是用于存放“长度固定”的字符串。 StringBuffer类所定义的对象是...

    visdom服务static

    文件用于解决visdom服务启动时提示Downloading scripts, this may take a little while 使用方法:将文件内容覆盖到visdom模块下static文件

    static.zip

    第一次启用visdom.server,需要Downloading scripts.It might take a while。大家可以直接将static文件夹添加覆盖到Lib\site-packages\visdom中,然后注释掉server.py中download_scripts部分,即可使用visdom.

    枚举(switch、覆盖枚举、实现接口等)

    //覆盖方法 @Override public String toString() { return this .index+ "_" + this .name; } } 用法五:实现接口 所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再...

    ImportDemo.7z

    3.Virtual关键字不可以和static private delegate 方法一起使用。 iterface 接口 接口以I开头,后面以单词来重命名。 例如IComputer 接口不允许使用访问修饰符 pulbic private protected 接口不可以使用修饰符 ...

    Java面向对象编程+可授课使用+没有答案

    【练习题】 1、类的成员变量练习题 2、类的成员变量练习题 3、类的成员变量与方法、构造方法练习题 4、构造方法练习题 5、构造方法与重载练习题 6、构造方法的重载练习题 7、构造方法与重载、包...14、覆盖、继承练习题

    Java-关键字final详解(public static final)

     所以final修饰的方法无法覆盖和重写。 三、final修饰的变量 (1)局部变量 无法为最终变量进行赋值了。 final修饰的变量只能赋一次值。 final修饰的变量一旦赋上值就不能再重新赋值了。 (2)fina修饰的变量如果...

    java面试题总结.docx

    重写是指子类继承了父类的方法并且覆盖了子类的方法。 方法重载的规则: a.方法名一致,参数列表中的顺序,类型,个数不同 b.重载的方法与返回值无关 c.重载可以抛出不同的异常,可以有不同的修饰符 方法重写的命名...

    java程序员必知的

    finalize是 Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 第二,Anonymous Inner Class (匿名内部类) 是否可以extends...

    Java关键字final、static使用总结

    final方法不能被子类的方法覆盖,但可以被继承。用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块,下面通过本文给大家分享Java关键字final、static使用总结,感兴趣的朋友一起...

    c#隐藏基类方法的作用

    当派生类和基类有同样的的方法... 代码如下:class program{ static void Main(string[] args)  {  B b=new B();  b.F();  A a=b;  a.F();  Console.ReadKey();  }  }  class A  {  public void F()  {  

    java试卷(含答案)

    子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。 子类要调用父类的方法,必须使用super关键字。 4.最终类不能派生子类,最终方法不...

    Java常见面试题及答案汇总,2022年最新版

    Java中是否可以覆盖一个private或者是static的方法? 如果一个类的变量或者方法前面有static修饰,那么表明这个方法或者变量属于这个类,也就是说可以在不创建对象的情况下直接使用 当父类的方法被private修饰时,...

    Java面试攻略面试宝典常见面试题及答案

    Java中是否可以覆盖一个private或者是static的方法? 如果一个类的变量或者方法前面有static修饰,那么表明这个方法或者变量属于这个类,也就是说可以在不创建对象的情况下直接使用 当父类的方法被private修饰时,...

    2018软件测评师1

    (1)房源管理 (2)客户管理 (3)房源推荐 (4)交易管理 (2)方法 calPoints__(5)__根据每个用户每天的文章数(articleNum)、文

    230116-012shopDemo(配置文件的自动新建及其覆盖性写入)

    public static void SaveSettings(DataConfig dataSettings, INopFileProvider fileProvider) { //数据库连接配置类的1个指定实例以键/值对的形式存储到单例实例的变量和属性字典成员实例中,并把这些数据覆盖性的...

Global site tag (gtag.js) - Google Analytics