写点什么

13. 《重学 JAVA》-- 抽象类和接口

作者:杨鹏Geek
  • 2021 年 12 月 14 日
  • 本文字数:633 字

    阅读完需:约 2 分钟

13. 《重学 JAVA》-- 抽象类和接口

一、抽象类

在 Java 中,通过关键字 abstract 定义的类叫做抽象类。Java 是一门面向对象的语言,因此所有的对象都是通过类来描述的;但反过来,并不是所有的类都是用来描述对象的,抽象类就是其中的一种。

在一个抽象类中,至少有一个抽象方法,通过关键字 abstract 定义的方法,并且没有方法体,抽象类是不能实例化的,它需要被一个子类继承。

如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为 abstract 类。

二、接口

比抽象类更加抽象的是接口,在接口中所有的方法都是抽象的,在 JAVA 编程语言中是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

1、抽象类可以有方法体的方法,但接口没有。

2、接口中的成员变量隐式为 static final,但抽象类不是的。

3、一个类可以实现多个接口,但只能继承一个抽象类。

4、接口是隐式抽象的,所以声明时不需要使用 abstract 关键字;接口的每个方法都是隐式抽象的,所以不需要使用 abstract 关键字;接口中的方法都是隐式 public 的。

三、接口与类的区别

1、接口不能实例化对象。

2、接口没有构造方法。

3、接口中的所有方法必须是抽象方法。

4、接口不能包含成员变量,除了 static 和 final 变量。

5、接口不是被类继承了,而是要被类实现。

6、接口支持多继承。

7、接口只能继承接口,不能继承类。

8、接口里的方法默认修饰符是 public abstract。

9、接口里的字段全是全局变量,默认修饰符是 public static final。

发布于: 3 小时前阅读数: 8
用户头像

杨鹏Geek

关注

你必须比别人更努力 才能看起来毫不费力! 2019.10.26 加入

码农

评论

发布
暂无评论
13. 《重学 JAVA》-- 抽象类和接口