java中的static方法总结

1.静态方法可以直接调用同类中的静态成员,但是不能直接调用非静态成员,这是为什么呢?大家想一下,静态成员在对象创建之前就要写入内存,所以它在内存中是实实在在的存在的,而非静态还不存在内存中,所以不能调用,

java中Static为什么不能修饰abstract的方法 ?

static 方法是类方法,它是不允许子类覆写(override)
而abstract方法是没有实现的方法,是必须由子类来覆写的。
能这么设就矛盾了

Java中用static修饰符修饰的方法被称为静态方法,本文我们来看看Java中static静态方法的用法特点。Java的static静态方法是属于整个类的类方法。不用static修饰符限定的方法,是属于某个具体类对象的方法。static方法使用特点如下:

(1)引用这个方法时,可以使用对象名做前缀,也可以使用类名做前缀;

(2)static方法不能被覆盖,也就是说,这个类的子类,不能有相同名、相同参数的方法;

(3)static方法只能访问static方法,不能访问非static方法,但非static方法可以访问static方法;

(4)static方法只能访问static数据成员,不能访问非static数据成员,但非static方法可以访问static数据成员;

(5)main方法是静态方法。在Java的每个Application程序中,都必须有且只能有一个main方法,它是Application程序运行的入口点。

(6)static方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载。而非static的方法是属于某个对象的方法,在这个对象创建时,在对象的内存中拥有这个方法的专用代码段;

static修饰方法:

会使这个方法成为整个类所公有的方法,可以用" 类名.方法名 "访问。

abstract修饰方法:

会使这个方法变成抽象方法,也就是只有声明而没有实现,实现部分以";"代替,需要子类继承实现。

试想:static修饰的方法会有具体的实现,而abstract肯定没有具体的实现,两个完全冲突的修饰关键词
怎么可能会放在一起使用呢!

抽象类在定义上除了有 abstract 修饰符和抽象方法外,和非抽象类一样,可以定义类变量、类方法,实例方法,实例变量等类里边允许出现的内容。注意:

(1)抽象类不能进行实例化,也就是不能 new

(2)抽象类可以有或没有抽象方法,而有 abstract 方法的类必须定义为 abstract 类

(3)抽象方法没有方法体,而不是方法体为空

静态方法和实例方法的区别主要体现在两个方面:
在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

"重写"只能适用于实例方法.不能用于静态方法.对于静态方法,只能隐藏(形式上被重写了,但是不符合的多态的特性),“重写”是用来实现多态性的,只有实例方法是可以实现多态,而静态方法无法实现多态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Whitemeen太白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值