interface I {
int element = 10;
}
class A implements I
{
int element = 2;
public static void main (String[] args) throws java.lang.Exception
{
A a = new A();
System.out.println(a.element);
I i = (I)a;
System.out.println(a.element + " " + i.element);
}
}
输出:
2
2 10
即使在将类型A的对象强制转换为I之后,I中的element的值也不会改变.
如果我是一个类并且A扩展了I,那么我可以更改A中元素的值并将其强制转换为I,以便i.element具有修改后的值(在这种情况下,A没有元素成员)
那么在这种情况下是否存在强制转换的概念? (将类对象强制转换为接口类型)
解决方法:
Even after I cast object of type A to I the value of element in I doesn’t change.
I i = (I)a;
该行显示了指向类型I的实例.这意味着,您正在访问类型I中的变量,并告诉您执行类a中的方法.
多态性严格用于方法.变量没有多态性.
这是示例:
public interface TestInterface {
int testvarInter