java 接口是类吗?
我的想法是 interface 是抽象类的特殊性,是一种特殊类。
[解决办法]
接口确实是一种特殊的“抽象类”,接口里的所有方法都是抽象方法。
一个Java源文件里最多只能有一个public接口,如果一个Java源文件里定义了一个public接口,则该源文件的主文件名必须与该接口名相同——从这个角度看来,接口可以被当成特殊的类。
[解决办法]
接口:初期理解,可以认为是一个特殊的抽象类
当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
class用于定义类
interface 用于定义接口。
接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符。
常量:public static final
方法:public abstract
记住:接口中的成员都是public的。
接口:是不可以创建对象的,因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。
否则子类是一个抽象类。
接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。
[解决办法]
说的简单一点
类更像是一种“模具”
而接口更偏向一种“能力”,一种实现该接口的类必须履行的“契约”
简单的例子
“鸟“可以抽象为一个类,但是很多东西可以飞
但是”飞“可以抽象为一个类吗?
显然不是,”飞“只有定义为接口更为恰当!
只要实现它,你就可以飞,怎么飞是你的事了