Java final static

  

 

 

 

idea 错误提示

 

 

@Override 重写方法的目的是为了多态, 重写是实现多态的前提, 即重写是发生于继承且针对非static方法

语法上子类允许出现和父类只有方法体不一样的static方法, 但语法上static支持重写, 但是运行上达不到多态

 

 

 

a的编译类型为 父类A, 运行类型为 子类B, a调用static方法时, 是依据编译类型, 没有多态

 

当定义方法为static final时

 

 

When a static method is overriden in a subclass it can still be accessed via the superclass making the final declaration not very necessary. Declaring a static method final does prevent subclasses from defining a static method with the same signature.

将一个static方法声明为final是不必要的, 声明为final可以阻止子类定义相同签名的static方法

 

 

static方法属于类, static方法无this隐式参数, 可以使用类名直接调用static方法

方法被声明为static:

  1. 无需访问对象
  2. 只需要访问类的static域

 

static方法不能被Override,但是可以被子类相同signature的方法hide,子类的static方法不是Override,而是hide, 如果在子类中直接调用该static方法,会调用子类重新定义的,而不是父类的,而父类定义为 static final

final会阻止隐藏, 故子类重新定义static方法会报错

posted @   ascertain  阅读(69)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-07-07 Vasp & Gaussian
2020-07-07 python易错点
点击右上角即可分享
微信分享提示