以下内容均为个人理解,若有不当之处望批评指正
abstract interface AnimalInterface {
/**
* 属性:interface 中的属性默认且必须是 public static final 且必须被初始化
* 首先我们要清楚interface的创造初衷即能胜任作为和外部系统打交道的合同,就是接口是实现类的标准和规范。
* 明白了这点再来解释这三个修饰符
* public:既然接口的初衷就是作为和外部系统打交道的合同,我并不知道未来外部别人怎么用我们的接口,所以尽量少给别人设置障碍(少添点堵),
* 就设置权限为public,出于这种考虑,Sun公司一开始就规定,接口属性和方法默认就为public。
* static:可以从两个方面去考虑
* 1.接口没有构造方法,即没有办法实例化,反向考虑,如果有成员属性,但没有办法实例化这些成员属性也无法发挥作用
* 2.接口是面向外部系统的,外部系统如何使用接口存在很大的未知性,将属性设置为static则未来的子类的static方法也能访问到它,可以最大限度的发挥接口属性的功能。
* final:final就很好理解了,既然是合同,那当然不能被轻易的改变
* 必须被初始化:Java中每一个类都有构造方法(抽象类也需要有),而接口没有构造方法
* 因此接口不能调用构造方法初始化其属性只能在定义时写出默认值
*
* 方法:interface中的方法默认修饰符为public abstract
* public:理解同属性的public
* abstract:接口之所以称之为接口就是因为abstract,不做解释
*
* 接口:interface定义时的默认修饰符为 abstract
*/
int age0 = 0;
public int age1 = 1;
public static int age2 = 2;
public static final int age3 = 3;
void fun0();
public void fun1();
public abstract void fun2();
}