JAVA中的static修饰的方法不能被重写
来源:互联网 发布:坐车软件哪个好 编辑:程序博客网 时间:2024/06/16 01:45
可以重写静态方法,但重写后的静态方法不支持多态。
其实static根本就没有重写之说。static方法引用的时候应该用类名来引用,而不是对象。同时static方法不参与继承,所以在继承体系里面也不存在重载的说法。
不能被重写,例子:
class A{ public static void a(){ System.out.println("a"); }}class B extends A{ public static void a(){ System.out.println("b"); }}
public class Test { public static void main(String[] args) { A a = new B(); a.a();//输出结果是a }}
可以继承,例子:
class A{ public static void a(){ System.out.println("a"); }}class B extends A{} public class Test { public static void main(String[] args) { B.a();//输出a,证明静态方法可以被继承 }}
静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有static关键字修饰,那么该子类的方法会把原来继承过来的父类的方法隐藏,而不是重写。通俗的讲就是父类的方法和子类的方法是两个没有关系的方法,具体调用哪一个方法是看是哪个对象的引用;这种父子类方法也不在存在多态的性质。
java不推荐用对象调用static方法,这会使人混淆,请大家注意。
这也是为什么abstract修饰的method是不可同时是static的原因:
abstract修饰方法,子类需要重写去实现,主要用于各个子类的实例对象;
static修饰方法,则方法不属于某个对象,属于class,可用class名.方法名(),进行调用;
简单的说abstract实例对象;
而static属于类。
所以static方法不能是abstract方法
阅读全文
0 0
- JAVA中的static修饰的方法不能被重写
- 子类中的方法之重写和static方法不能被重写
- [Java]static、final修饰的方法是否可以被子类继承、是否可以被子类重写及final修饰详解
- java中的static(包括类前面修饰的static、方法前面修饰的static、成员变量前面修饰的static)
- java中的static(包括类前面修饰的static、方法前面修饰的static、成员变量前面修饰的static)
- JavaSE面向对象多态中关于被static修饰的方法不存在被重写
- Java static修饰方法
- Java static修饰的方法中不能使用this、super关键字
- java中静态(static)的方法为什么不能重写(override)
- java中静态(static)的方法为什么不能重写(override)
- java中static方法不能被重写但是能重定义
- Java中static修饰的方法和非static修饰的方法的区别
- java中的Static修饰符
- java中的修饰符static与静态方法final的用法
- java中的修饰符static与静态方法及final的用法
- 精华:java中的修饰符static与静态方法final的用法
- 继承到底是什么,为什么private static的方法不能被重写
- java中父类的静态方法不能被重写
- 欢迎使用CSDN-markdown编辑器
- oracle随记
- 使用FormData进行Ajax请求异步上传图片案例
- 前端应该懂的知识基础
- [NOIP模拟][欧拉函数]切蛋糕
- JAVA中的static修饰的方法不能被重写
- 动静分离
- opencv之mixChannels/inRange
- c++ 导入头文件
- zTree的搜索
- 利用Python Mock模拟OJ test case
- ifconfig 不可用
- 基于百度AI的文字识别-Python
- STL中vector<type>的复制