在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
static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。 代码如下:int a ;int main(){ int b ...
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。 (3)子类函数的访问...
java---- 封装,接口,继承,覆盖,构造过程,多态,static、this、super、final用法
答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。 3、请讲述String 和StringBuffer的区别。 答:String 类所定义的对象是用于存放“长度固定”的字符串。 StringBuffer类所定义的对象是...
文件用于解决visdom服务启动时提示Downloading scripts, this may take a little while 使用方法:将文件内容覆盖到visdom模块下static文件
第一次启用visdom.server,需要Downloading scripts.It might take a while。大家可以直接将static文件夹添加覆盖到Lib\site-packages\visdom中,然后注释掉server.py中download_scripts部分,即可使用visdom.
//覆盖方法 @Override public String toString() { return this .index+ "_" + this .name; } } 用法五:实现接口 所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再...
3.Virtual关键字不可以和static private delegate 方法一起使用。 iterface 接口 接口以I开头,后面以单词来重命名。 例如IComputer 接口不允许使用访问修饰符 pulbic private protected 接口不可以使用修饰符 ...
【练习题】 1、类的成员变量练习题 2、类的成员变量练习题 3、类的成员变量与方法、构造方法练习题 4、构造方法练习题 5、构造方法与重载练习题 6、构造方法的重载练习题 7、构造方法与重载、包...14、覆盖、继承练习题
所以final修饰的方法无法覆盖和重写。 三、final修饰的变量 (1)局部变量 无法为最终变量进行赋值了。 final修饰的变量只能赋一次值。 final修饰的变量一旦赋上值就不能再重新赋值了。 (2)fina修饰的变量如果...
重写是指子类继承了父类的方法并且覆盖了子类的方法。 方法重载的规则: a.方法名一致,参数列表中的顺序,类型,个数不同 b.重载的方法与返回值无关 c.重载可以抛出不同的异常,可以有不同的修饰符 方法重写的命名...
finalize是 Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 第二,Anonymous Inner Class (匿名内部类) 是否可以extends...
final方法不能被子类的方法覆盖,但可以被继承。用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块,下面通过本文给大家分享Java关键字final、static使用总结,感兴趣的朋友一起...
当派生类和基类有同样的的方法... 代码如下: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() {
子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。 子类要调用父类的方法,必须使用super关键字。 4.最终类不能派生子类,最终方法不...
Java中是否可以覆盖一个private或者是static的方法? 如果一个类的变量或者方法前面有static修饰,那么表明这个方法或者变量属于这个类,也就是说可以在不创建对象的情况下直接使用 当父类的方法被private修饰时,...
Java中是否可以覆盖一个private或者是static的方法? 如果一个类的变量或者方法前面有static修饰,那么表明这个方法或者变量属于这个类,也就是说可以在不创建对象的情况下直接使用 当父类的方法被private修饰时,...
(1)房源管理 (2)客户管理 (3)房源推荐 (4)交易管理 (2)方法 calPoints__(5)__根据每个用户每天的文章数(articleNum)、文
public static void SaveSettings(DataConfig dataSettings, INopFileProvider fileProvider) { //数据库连接配置类的1个指定实例以键/值对的形式存储到单例实例的变量和属性字典成员实例中,并把这些数据覆盖性的...