interface Myface
{ //这里加void fun(),下面的加f.fun();能编译通过
}
public class B
{
public static void main(String args[])
{
Myface f=new Myface()
{
public void fun()
{
System.out.println("test");
}
};
//可以编译通过,这里f.fun()则编译能过不了
}
};这段代码能说明什么呢?
{ //这里加void fun(),下面的加f.fun();能编译通过
}
public class B
{
public static void main(String args[])
{
Myface f=new Myface()
{
public void fun()
{
System.out.println("test");
}
};
//可以编译通过,这里f.fun()则编译能过不了
}
};这段代码能说明什么呢?
{
public void fun()
{
System.out.println("test");
}
};这是内隐类,大括号里实现了具体的fun()
所以,如果你接口类里没有fun();我在其实现类中当然可以加入新的函数fun()!
public void fun() {
System.out.println("test");
}
}这里产生了一个实现了Myface接口的类的实例, 当你将它赋给一个Myface 类型的变量f时, 这个对象已经向上转型为Myface类型的对象了, 所以, 只有Myface接口中的定义了的方法才可以用f.方法名()来调用, 其它方法在向上转型的过程中被屏蔽了.