Java中抽象类和接口的区别


在Java中,抽象是通过抽象类和接口实现的。两者都包含抽象方法,子类或实现类必须实现这些方法。以下是抽象类和接口之间的一些重要区别。

序号 关键点 抽象类 接口
1 支持的方法 抽象类可以同时具有抽象方法和具体方法。 接口只能包含抽象方法。从Java 8开始,它可以包含默认方法和静态方法。
2 多重继承 不支持多重继承。 接口支持多重继承。
3 支持的变量 支持final、非final、static和非static变量。 只允许static和final变量。
4 实现 抽象类可以实现接口。 接口不能实现接口,它可以扩展接口。
5 关键字 抽象类使用abstract关键字声明。 接口使用interface关键字声明。
6 继承 抽象类可以使用extends关键字继承另一个类并实现接口。 接口只能继承接口。
7 继承 抽象类可以使用extends关键字继承。 接口只能使用implements关键字实现。
8 访问权限 抽象类可以具有任何类型的成员,例如private、public。 接口只能具有public成员。

抽象类与接口示例

public class JavaTester {
   public static void main(String args[]) {
      Animal tiger = new Tiger();
      tiger.eat();
      Cat lion = new Lion();
      lion.eat();
   }
}
interface Animal {
   public void eat();
}
class Tiger implements Animal {
   public void eat(){
      System.out.println("Tiger eats");
   }
}
abstract class Cat {
   abstract public void eat();
}
class Lion extends Cat{
   public void eat(){
      System.out.println("Lion eats");
   }
}

输出

Tiger eats
Lion eats 

更新于: 2023年12月8日

5000+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告