Interface和abstract类不能含有Static方法

原创 2007年10月11日 14:05:00

interface & abstract class 不能包含static 方法!
sun
这么做的机是什
好像大名鼎鼎的 thinking in java中也没有解

abstract class A {
static void doSomething() ;
}
不能通过编译是因你没有定doSomething 的方法体,比如该语句最后你加上{},就可以了用了.这时doSomething A的一个方法.
如果你想把它定义为一个抽象方法那你必它的候使用关键abstract.如果你想定一个方法同使用关键abstract static 不到的.你想想,static 方法是方法,它是不允覆写(override)的(所以必在定实现),而abstract方法,是只有特征,没有实现的方法,是必由子来覆写的,两者是水火不相容的,sun当然不会允一个同时为abstract static 的方法。

至于接口和抽象类还有点不同,因它是粹的设计,不及任何的实现,它所有的方法都是共有和抽象的(关键publicabstract可以省略)所以接口不能有static方法(方法),上面提到的static void doSomething(){};在抽象中可以存在,但是在接口中是不允的。

便提以下,在接口中可以定staic的属性的。实际上接口中定的属性必static,finalpublic的(因是必的,所以3关键字也都是可以省略的)
一:static不能和abstract
二:interface是更抽象的抽象,接口的所有方法都未实现,接口的方法默认为public abstract ,根据原一,当然不能是static了;
三:抽象是部分实现的,其中nonabstract方法可以staticabstract方法不能static

Interface in Java 8(Default/Static methods)

在 jdk1.7之前,在 Interface中只能 declare method, 是不可以 define method的。所以在 jdk 1.8 里面有什么不一样呢。 Default method ...
  • stanxl
  • stanxl
  • 2016年12月08日 00:11
  • 1461

Java8 允许interface存在static方法

stackoverflow上相关讨论 With Java 8, interfaces can have static methods. They can also have concrete i...
  • zhangch1991425
  • zhangch1991425
  • 2017年06月18日 19:57
  • 431

关于如何访问interface中定义的变量

http://topic.csdn.net/t/20011024/13/337598.htmlinterface   Foo{           int   k=0;     }    ...
  • asran
  • asran
  • 2007年04月01日 20:51
  • 4273

static和abstract为何不能同时出现

当我们试图使用abstract和static同时修饰一个方法时会发现编译器报错,原因在哪里呢?       因为static修饰的方法是静态方法,其可以直接被类所调用。而abstract修饰的方法为...
  • bingdiana219
  • bingdiana219
  • 2015年09月02日 11:34
  • 844

final、static和abstract区别和使用

static 和final以及abstract的使用及区别
  • high2011
  • high2011
  • 2015年09月24日 17:03
  • 2794

static,final和abstract

一、static  修饰属性,方法,代码块1、静态属性:全类公有,称为类变量             那么这个属性就可以用  类名.属性名  来访问             (共有的类变量与对象无关,...
  • myy168
  • myy168
  • 2010年10月31日 17:29
  • 4480

java中抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰

java中抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰...
  • u010575093
  • u010575093
  • 2016年02月24日 20:37
  • 5391

介绍 abstract、static 和 final

Java 中有很多修饰符。今天看到一篇文章,作者对这些修饰符做了一个总结,并画了张表(http://blog.csdn.net/cdsnmdl/archive/2009/02/26/3940417.a...
  • yidinghe
  • yidinghe
  • 2009年03月01日 13:44
  • 1972

abstract修饰符 和 interface修饰符

==== abstract ======================================================================================...
  • DUANJIEFEI
  • DUANJIEFEI
  • 2015年06月04日 15:56
  • 853

JAVA中的static修饰的方法不能被重写

可以重写静态方法,但重写后的静态方法不支持多态。 其实static根本就没有重写之说。static方法引用的时候应该用类名来引用,而不是对象。同时static方法不参与继承,所以在继承体系里面也...
  • haihaa
  • haihaa
  • 2017年07月07日 15:41
  • 1547
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Interface和abstract类不能含有Static方法
举报原因:
原因补充:

(最多只允许输入30个字)