抽象类和接口的特性的一些记忆技巧

来源:互联网 发布:乐乎城市青年社区投诉 编辑:程序博客网 时间:2024/05/29 11:45

很多人都会苦于记忆抽象类和接口的区别,看到一个个列成长队的不同,很容易让人产生畏惧感。本文就写一些记忆抽象类和接口的特性的一些技巧吧。

1、抽象类

抽象类就是含有抽象方法的类

我们只要记住这一个特性就好了,其他可以由这一条推出来。

为什么抽象类不能实例化?

假如我们允许抽象类产生一个实例,那么,当我们调用这个实例的抽象方法时会怎么样呢?抽象方法是没有方法体的,调用必定非法。所以抽象类不能实例化。

抽象类的其他特性呢?

普通类有什么特性,那么抽象类就有什么特性。抽象类只是一种特殊的类罢了。

2、接口

为什么要有接口这个东西?

接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。接口存在的意义可能在于提供一种规范,一种强制子类必须要遵守的规范。若每个子类都无拘无束,那还不反了天了,能把定义规范的人气死。

为什么 java 8 以前的接口不允许有方法的默认的实现和静态方法?

我也不知道为什么,反正 java 8 允许接口有默认的实现和静态方法了。

为什么接口不允许含有变量?

变量属于类的细节,应该被隐藏。而接口没有实例要调用它的变量,所以变量的存在没有意义。

为什么接口里方法和常量必须是 public ?

不是 public 难道留着自己用?貌似接口自己也调用不了,就相当于不存在了,写不写都一样了。

3、总结

嗯,其实个人感觉一个是类,一个是接口,从他们本意上理解就好了,强行类比不同的事物,可能越比越乱。