1.接口
a.关键字:interface
public interface Serviceable{
//TODO
}
b.属性:只能是 公共 静态 常量 属性——就算不写这三个关键字,也是默认这种情况
/* public static final */ int a = 10;
c.构造:接口不能有构造(这说明接口不能产生对象)
d.行为:只能是 公共 的 抽象 方法——就算不写修饰符,也默认这种情况
/* public abstract */ void turnUpEngine (int a);
e.意义:体现在方法上——让没有继承关系的类共享这些行为,各有各的具体实现
f.接口的实现:类实现接口,使用implements关键字,并且重写接口中的抽象方法
public class NewTank implements Serviceable{
//TODO
}
2.接口的注意点:
a.类实现接口,且是多实现:
①类在继承的同时,也可以做实现接口,而且类可以实现多个接口
②类实现接口,必须重写节后中所有的抽象方法,否则该类是一个抽象类
b.接口可以继承接口,且是多继承:
①尽量定义小接口(最小接口原则,接口隔离原则)
②如果没有实现接口,就算具有相同的方法,也不能用接口的引用去指向它的对象
3.抽象类 与 接口
抽象类 接口
a.定义语法:①abstract class 定义 interface 定义
②抽象方法必须写abstract 抽象方法可以
③可以有变量属性、构造方法 不能有变量属性,属性只能是公共静态常量,不能有构造方法
④可以有实现了的方法 JDK1.7之前不能有实现了的方法;JDK1.7之后可以有实现了的方法,但必须加default
b.使用语法:用子类继承抽象了extends(单) 用实现类实现接口implements(多);用子接口继承接口extends(多)
c.设计层面:与生俱来 附属添加的行为(尽量定义小接口)