java抽象类中可以定义静态的抽象方法吗?为什么?

 我来答
王博好帅
推荐于2017-09-15 · TA获得超过293个赞
知道答主
回答量:25
采纳率:0%
帮助的人:14.2万
展开全部
不可以。
我是这样理解的:抽象类是不能实例化的,即不能被分配内存,而static修饰的方法在类实例化之前就已经别分配了内存,这样一来矛盾就出现了:抽象类不能被分配内存,而static方法必须被分配内存。所以抽象类中不能有静态的抽象方法。
这和接口是一样的,接口中的方法也只能是 public abstract修饰的,不能加上static。
光环国际
2015-10-20 · IT·互联网经理人培训口碑品牌
光环国际
光环国际成立于2001年7月,是一家专注于IT互联网经理人培训机构,经过18年发展,光环卓而不凡的服务品质,现已成为IT互联网经理人培训国内口碑品牌。
向TA提问
展开全部
  Java抽象类中不能有静态的抽象方法。

  原因:抽象类是不能实例化的,即不能被分配内存;而static修饰的方法在类实例化之前就已经别分配了内存,这样一来矛盾就出现了:抽象类不能被分配内存,而static方法必须被分配内存。所以抽象类中不能有静态的抽象方法。

  另外,定义抽象方法的目的是重写此方法,但如果定义成静态方法就不能被重写。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大海小蓝天2357
推荐于2018-02-26 · TA获得超过6.6万个赞
知道大有可为答主
回答量:5.3万
采纳率:0%
帮助的人:3738万
展开全部
抽象类一定有抽象方法吗?我来说说吧,静态是属于字节码的;一个抽象类可以没有抽象方法,只是为了不让别人来实例化它; 以上两点可以说明,静态方法只要有字节码存在就可以运行,所以抽象类中可以有静态方法。 我再多说一嘴,静态和抽象不能共存与方法上,因为静态属于字节码,不需要对象就可以运行,而抽象方法没有方法体,运行没有意义,所以不能共存。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sailyangfan
2012-02-01 · TA获得超过367个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:201万
展开全部
不能。
大家知道对象有两种,一种是实例对象,一种是静态对象
一个类可以有多个实例对象,但只有一个静态对象。也就是类本身
类是可以被继承的。但他的静态对象只有一个,不能被继承,他的静态方法就更不可能被继承。
所以,抽象方法是需要继承来实现,而静态方法根本不能被继承,两者互相矛盾。
所以,根本就不存在抽象静态方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友47638c80c
2012-02-01 · TA获得超过112个赞
知道答主
回答量:198
采纳率:100%
帮助的人:85.3万
展开全部
楼上的,静态方法能够被继承。所以你说的原因不对。

静态成员这种设计逻辑决定了不能有抽象静态方法。这个逻辑就是静态成员属于类本身,不能发生重写,而重写是实现方法体的途径。所以,如果允许有静态抽象方法,那么你很容易写出这样的调用,而该方法根本就没被实现。

MyClass.oneStaticMethod();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式