static关键字

static关键字可以用来修饰方法、变量、常量,和类属于同一级别。

静态变量、常量:

  1. 可以通过类名.量名调用,也可以通过对象.量名调用,但是不提倡后者,因为如此容易混淆静态和非静态属性。
  2. 对象共享一个静态成员

静态方法:

  1. 静态方法不能直接调用非静态的成员,不能用this
  2. 静态方法可以被重载,但不能被重写。
  3. 重载不是多态的体现(条件:要有继承关系,要有方法的重写,要有父类的引用指向子类对象)

 

1 静态方法内部不能调用非静态变量,不能用this(Cannot make a static reference to the non-static field i)

静态是类级别的。当new一个对象时,静态方法先加载到方法区,然后才在堆内存中为对象开辟空间。

静态方法先于非静态变量存在,静态方法存在的时刻非静态变量尚未存在,所以静态方法内部不能调用非静态成员成员变量。

同理,this指代当前对象,也不能被在静态方法中使用。

 

2 静态方法可以被重载,但不能被重写。

静态方法可以被重载,重载发生在同一个类里面,允许有相同的方法名和不同的形参列表、返回值类型。

静态方法不能被重写,重写发生在父类与子类的方法之间,而静态方法属于类级别,所以不能被重写。

就算子类中有一个与父类静态方法相同方法名、形参列表、返回值类型的方法,实例对象调用的也是父类静态方法。

 

posted @   IslandZzzz  阅读(128)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示