自定义接口继承什么?
为什么接口定义的引用可调用Object中的方法?
看以下例子:
//file InFace.java
public interface InFace
{
public void inFaceA();
}
//file Imple.java
public class Imple implements InFace
{
public void inFaceA()
{
System.out.println( "InterFace method! ");
}
public void impleB()
{
System.out.println( "Implement method! ");
}
}
//file TestIn.java
public class TestIn
{
public static void main(String[] args)
{
InFace i = new Imple();
i.inFaceA() ;
System.out.println( i.toString() );
//此处i只能显示调用inFaceA,不能调用impleB,这是正常的,但是我
//不明白的是i也能调用toString(),这应该是Object中的方法,但是
//接口是不能继承类的,
//我想问接口是不是也有一个类似Object这样的
//顶级接口,若不是,为什么i可以调用Object中的方法??
}
}
------解决方案--------------------我也不明白 虽然是Imple的实例 可是接口里没有定义toString() 方法啊 为什么可以调用?
------解决方案--------------------我现在终于明白了你们在严究一个什么样的问题了~!!!
接口是哪来的???
我首先要说的是:“接口”不是“类”,如果非要说接口是类的话那就只能说接口是一个特殊的类~!!!它一出生是不会去和“类”的祖先“Object”拉上关系的~!!!
这个问题涉及到底层的东西,就像Java是OOP语言,可是它又为什么还要让int, long, short, byte, double, float, boolean, char和static这样的非OOP的东西存在呢???OOP追求的是单根结构,单继承,可是为什么还要弄个接口出来,可以让一个类去“继承”多个接口呢???
…………………………………………………….
我想对于初学者最好不要去研究这些问题,要不能你们可能会陷进去而“走火入魔”的,因为你们对知识的积累还不多,还无法让自身现有的知识去接受它,等你们对Java有所了解了之后,再回来研究一下这些问题吧~!!!