Java – override interface variables?

When I read from various java books and tutorials, the variables declared in the interface are constants and cannot be overwritten

I made a simple code to test it

interface A_INTERFACE
{ 
    int var=100; 
}

class A_CLASS implements A_INTERFACE
{ 
    int var=99; 
    //test
    void printx()
    {
        System.out.println("var = " + var);
    }
}

class hello
{

    public static void main(String[] args)
    {
        new A_CLASS().printx();
    }
}

And print out var = 99

Is var covered? I'm completely confused. Thank you for any suggestions!

Thank you very much! I'm new to this interface "Shadow" is a key word to understand this I checked the relevant information and now I understand

Solution

It will not be covered, but obscured, and there is confusion, because the constants in the interface are also static

Try this:

A_INTERFACE o = new A_CLASS();
System.out.println(o.var);

You should get a compile - time warning for non - static access to static fields

Now this

A_CLASS o = new A_CLASS();
System.out.println(o.var);
System.out.println(A_INTERFACE.var);  // bad name,btw since it is const
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>