static关键字
static关键字可以用来修饰方法、变量、常量,和类属于同一级别。
静态变量、常量:
- 可以通过类名.量名调用,也可以通过对象.量名调用,但是不提倡后者,因为如此容易混淆静态和非静态属性。
- 对象共享一个静态成员
静态方法:
- 静态方法不能直接调用非静态的成员,不能用this
- 静态方法可以被重载,但不能被重写。
- 重载不是多态的体现(条件:要有继承关系,要有方法的重写,要有父类的引用指向子类对象)
1 静态方法内部不能调用非静态变量,不能用this(Cannot make a static reference to the non-static field i)
静态是类级别的。当new一个对象时,静态方法先加载到方法区,然后才在堆内存中为对象开辟空间。
静态方法先于非静态变量存在,静态方法存在的时刻非静态变量尚未存在,所以静态方法内部不能调用非静态成员成员变量。
同理,this指代当前对象,也不能被在静态方法中使用。
2 静态方法可以被重载,但不能被重写。
静态方法可以被重载,重载发生在同一个类里面,允许有相同的方法名和不同的形参列表、返回值类型。
静态方法不能被重写,重写发生在父类与子类的方法之间,而静态方法属于类级别,所以不能被重写。
就算子类中有一个与父类静态方法相同方法名、形参列表、返回值类型的方法,实例对象调用的也是父类静态方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端