接口
有些时候必须从几个类中派生出一个子类,继承他们所有的属性和方法。但是,java不支持多重继承。有了接口,就可以得到多重继承的效果。
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
一个类可以实现多个接口,接口也可以继承其他的接口。
接口的特点
1.接口中的所有成员变量都默认是由public static final修饰的。
2.接口中的所有方法都默认的是由public abstract修饰的。
3.接口没有构造器;
4.接口采用多层继承机制。
接口中的注意事项
如果实现接口的类中没有实现接口中的全部方法,必须将此类定义为抽象类。
抽象类和接口之间的差别
抽象类是对于一类事物的高度抽象,其中既有属性也有方法,接口是对方法的抽象,也就对一系列动作的抽象。
当需要对一类事物抽象的时候,应该是使用抽象类,好形成一个父类。
当需要对一系列的动作抽象,就使用接口,需要使用这些动作的类去实现相应的接口即可。
接口组成更新
接口的组成:
常量和抽象方法
默认方法,静态方法和私有方法。
如果接口的实现类中的重写方法和更新方法的名字重合的时候,会默认执行实现类中的重写方法。
默认方法
默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字
主要用于升级接口,不破坏原有的实现类的代码。
静态方法
静态方法只能通过接口名来进行调用,不能通过实现类名或者对象名调用。
私有方法
private void show(){}
默认方法可以调用私有的静态方法和非静态方法。
静态方法只能调用私有的静态方法