接口函数1.java:19: 错误: 无法从静态上下文中引用非静态 方法 init() HSInterface.init()?
错误:无法从静态上下文中引用非静态方法
Cust.run(); 改成 st[0].run(); 就可以,不过告诉你一句,你想实现的功能恐怕实现不了
JAVA接口类中不能用静态变量
在方法内部定义的叫“局部变量”,而不是静态变量,局部变量不能加static,包括protected, private, public这些也不能加.静态变量是定义在类中,方法体外面的.如果你清楚jvm,应该知道局部变量是保存在栈中的,而静态变量保存于方法区,局部变量出了方法就被栈回收了,而静态变量不会,所以在局部变量前不能加static关键字.
Java的接口interface中为什么不能定义静态方法static?有什么替代手段.
因为java 中不能定义抽象静态方法static interface中所有的成员方法都是abstract的,当然也就不能定义静态方法static.静态法多的话制作成专门的类 想Math 一样
java接口中的方法为什么不是static就报错?
接口中所有的方法都是抽象方法,不能有实现,如果要给出实现,必须将方法声明为static或default.
JAVA接口中不可以有静态方法吗
接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错),所以不能含有静态代码块以及静态方法(用 static 修饰的方法)
java接口中为什么不能有静态方法
接口的所有方法都是抽象的,而抽象方法是没有static,有static的方法是不能override的,所以这样定义接口才有意义.接口中的变量也都是Final、static.
为什么接口中的方法不能是static类型的
这只是静态方法的命名形式.工厂类也可以用静态方法,也可以不用.看不懂语法先看下thinking in java?
java中,接口内能定义类方法,不过不能定义静态方法,两种方法不.
java中的类是不允许多继承的,而接口可以多继承,算是一点弥补,然后就是使用接口可以封装具体的实现,不向外部暴露具体的实现细节,只将接口暴露出来,用户也只能够通过接口访问,这样也有一定的安全性.
java程序设计 求解答
java接口的引用为什么不能用了
你的fun3()方法时定义在类b中的,它不属于接口a,所以你调用不了它.而且a a =new b ()这句,你创建的不是b类的对象,而是接口a被b类实现后的对象.所以很明显你用a.fun3()实质上是调用接口a的fun3()方法,但你的接口a中并没定义fun3()方法,所以会出错.你的题目里头“在类中添加一个fun3()方法,使用new关键字创建一个类的对象"要求你创建的b类的对象,应该改为 b a =new b ()如果你必须要用接口a的对象 a 来调用b类的fun3()方法,就必须进行强制类型转换:((b)a).fun3(); 这样就把对象a 强制转换为b类的了,就可以调用b类的fun3()方法