接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
|
接口可以实现其他接口,一个接口可以实现多个接口,抽象类也可以实现接口,但抽象类不能继承实体类。
其实接口,抽象类,一般类,他们三个之间的关系,可以看看它们里面所包含的方法就清楚了,接口中只能有抽象方法,抽象类中,可以有抽象方法,也可以有一般方法,
但是,如果一个类中有了抽象的方法,那么这个类就必须被申明了抽象类。
比如下面这个普通的类。
class Person
{
public void method()
{
System.out.println(“hello world ”);
}
}
在类中加上一个抽象方法,这个类就变成了抽象类
abstract class Person
{
//普通方法
public void method()
{
System.out.println(“hello world ”);
}
abstract method2();//抽象方法
}
再把里面的普通方法去掉,只剩下抽象方法了。就变成了接口
abstract Person
{
abstract method2();//抽象方法
}
这个时候你可能奇怪,接口不能这样写的呀,好像没有用abstract,确实是这样,因为这个特殊抽象类中只剩下了抽象方法。
就证明这里面全部是抽象的方法,如果抽象的方法很多的话,那么所有的抽象方法都要用abstract修饰,为了省事,所以就干脆就把
这个abstract给省略了,反正里面也是抽象的。
这个时候就变成了这样,变成了接口。
Person
{
method2();//抽象方法
}
这样说你应该能明白了吧,
|