(1)接口可以多个实现,抽象类只能被继承一个。
(2)接口无具体实现的方法,抽象类可以有具体实现的方法。
(3)抽象类可以声明和使用字段,接口则不能,但可以创建静态的final常量。
(4)接口只有public,而抽象类都可以。
(5)接口没有构造函数。而抽象类可以有
栗子:
1)动物的接口
public interface IAnimal {
void eat();
void sleep();
}
2)运动的接口
public interface ISport {
void run();
}
3)动物的抽象类
public abstract class AbAnimal {
abstract void eat();
abstract void sleep();
public void shit(){
System.out.print("拉屎");
}
}
//具体的继承类
public class bird extends AbAnimal{
@Override
void eat() {
System.out.print("吃饭");
}
@Override
void sleep() {
System.out.print("睡觉");
}
public void shit(){
System.out.print("拉屎");
}
}
//具体的实现类
public class Pig implements IAnimal,ISport{
@Override
public void eat() {
System.out.print("吃饭");
}
@Override
public void sleep() {
System.out.print("睡觉");
}
@Override
public void run() {
System.out.print("跑步");
}
}