接口与抽象类
1.接口
可以定义变量和方法
变量只能是 public static final 默认也是
方法只能是 public abstract 默认也是
实现接口implements 默认需要实现接口所有定义的方法
但是java 8 之后做了优化 新增 default 关键字 可以添加接口方法的默认实现
同时新增 static 静态方法 可以通过接口直接调用
如果同时实现两个接口 都有方法a 那么继承类必须重写方法a 无论是否有默 认实现
多继承实现
2.抽象类
相对于类没什么太大区别
单继承
可以有构造方法
多了 abstract 修饰
抽象一些公共特性出来 充当继承类的超类
继承类使用extends继承抽象类 必须实现抽象方法 不让继承类也需要用 abstract修饰成抽象类
可以定义方法 定义成员变量
可以使用 public protected default private