java - 可以重新初始化接口(interface)变量吗?

标签 java interface static final

interface abs{
 int a=10;// by default final static
     void callme(); 
}
class B implements abs{
    int a =11;// reinitializing

    void call()
    {
            System.out.println("No problem"+a);
    }
    public void callme()
    {
            System.out.println("Call me"+a);
    }

}
class main{


    public static void main(String args[]){

        B m=new B();
        m.call();
        m.callme();
    }

}

在 Herbert Schildt 的书中,我读到接口(interface)变量默认为 Final 和 static。这隐含地意味着它将像常量一样起作用。但是当我在上面提到的代码中为变量 a 分配 11 时,它没有给出任何错误。

o/p 没问题11 给我打电话11

最佳答案

您不是在重新初始化变量,而是隐藏它。

为了访问absa 成员,您必须使用接口(interface)名称来引用它。像这样的东西:

System.out.println("No problem" + abs.a);

关于java - 可以重新初始化接口(interface)变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32345674/

相关文章:

java - Spring3 JPA (Hibernate4) 不持久

java - 在应用程序完全重启之前不要再次显示 mainactivity

java - 为什么我的 if 语句总是返回 false? (返回值始终为0)

java - java中转换为对象时如何跳过json的两个父节点

go - Golang 中的泛型方法参数

Java 将 <object> 列表转换到它的接口(interface)

java - ExecutorService 的线程安全静态初始化

php - 使用抽象类和静态成员更好地管理功能

java - 创建一个 ListIterator 对象

c# - C# 中相同函数的静态和非静态版本