interface I
{
void show();
}
class A implements I
{
void show()
{
System.out.println("class A");
}
public static void main(String s[])
{
I i=new A();
i.show();
i.toString();
}
}
Q> As接口I不包含抽象方法toString()但仍然编译下面的代码。怎么样?覆盖使用接口的方法
当超类变量用于引用子类obj时,编译器首先搜索超类中的类似方法,如果未找到会给出错误。 这里接口不包含方法toString()。
EX =>
class A
{
void show()
{
System.out.println("show");
}
}
class B
{
void show()
{
System.out.println("show B");
}
void display()
{
System.out.println("display B");
}
public static void main(String s[])
{
A a=new B();
a.show(); //will execute
a.display(); //give error
}
当超类变量用于引用子类obj时,编译器首先搜索超类中的类似方法,如果未找到会给出错误。 这里接口不包含方法toString()。 ex => A级 { void show() { System.out。println(“show A”); } } B类 { 空隙显示() { 的System.out.println( “显示B”); } void display() { System.out.println(“display B”); } public static void main(String s []) {a} = new B(); a.show(); //将执行 a.display(); //给出错误 } – yash 2009-09-21 11:02:42
所有类都从Java中的Object继承。所以Java知道它什么时候遇到一个接口,它将被一个具体的类所支持,所以会有在java.lang.Object中定义的方法 – 2009-09-21 11:07:27