抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明。
|
2.因为java不支持多重继承,所以继承抽象类只能继承一个,但是可以实现多个接口。使用哪个看具体需求。
本质的区别是多继承和单继承的问题。
现在我们来定义一个歌唱家和作曲家。
如果用抽象类
abstract class Singer{
public abstract void sing();
}
abstract class Composer{
public abstract void melodize();
}
OK,现在有一个人既是歌唱家同也是作曲家,你实现给我看看。
用接口就非常容易。
interface Singer{
public void sing();
}
interface Composer{
public void melodize();
}
class APerson implements Singer,Composer{
public void sing(){}
public void melodize(){}
}