- 一个 Class 对象实际上表示的是一个类型,而这个类型未必一定是一种类。例如,int 不是类, 但 int.class 是一个 Class 类型的对象。
- 接口中的方法都自动地被设置为 public,接口中的属性将被自动设为 public static final。
- 接口不能定义属性,但是可以定义常量,同样,接口不存在构造方法。
- 从某种意义上来说,接口是没有实例域的抽象类,但是在现如今的开发中,很少使用抽象类,我想其中的原因是因为抽象类是extend,因此最多只能有1个,二接口可以implements,可以多个。
- 接口中可以存在静态方法,但是这有违接口作为抽象规范的初衷,更适当的做法是将静态方法放在伴生类中,因此,诞生于早期的Java语言中,存在着Collection/Collections 或 Path/Paths(前者是接口,后者是它的工具类)
- 接口中可以使用default关键字来定义默认方法,通常方法体里什么都不写(当然,也可以写上方法体)该方法会被每个实现接口的类
继承
,是的,不是实现,而是继承。这有什么作用呢,为什么不定义抽象方法,而要加上一个空方法体的默认方法呢,作用如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/36960e4cd15a4f96a5e1ecfe79792f48.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbGF5bWFuICAu,size_20,color_FFFFFF,t_70,g_se,x_16)
- 函数式接口:只有一个抽象方法的接口, 当需要这种接口时, 可以使用lambda 表达式。
- 内部类语法复杂(匿名内部类更甚),而且它违背了Java语言设计简单的理念,更何况还有局部内部类。
- JVM虚拟机不存在泛型类对象,都是普通类,实际上在编译的时候,会进行擦除类型变量,并替换为限定类型(如果限定为User,则为User,如果无限定,则是Object)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ee7008dcf54f45aab50fc24c9c4144c0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbGF5bWFuICAu,size_20,color_FFFFFF,t_70,g_se,x_16)
posted @
2022-03-24 08:56
layman~
阅读(
16)
评论()
编辑
收藏
举报