抽象类的相关概念
//一个方法没有被具体实现 的话 要用 abstract 修饰
//抽象类:包含抽象方法的类 称为抽象类
//抽象方法:没有具体实现,所以 ,用 abstract 修饰
//注意:
1.抽象类不能被实例化 也就是不能 new 对象
//2.抽象类当中可以有和普通类当中一样的成员 就是不能够实例化
//3.如果 一个普通类继承了一个抽象类 这个普通类要重写抽象类中的所有抽象方法
//4.一个抽象类A 继承了抽象类B ,可以不重写抽象类B中的抽象方法
但是一旦普通类C 继承了 抽象类A ,那么一定要重写所有的抽象方法,包括A和B
//5. final 和 abstract 是互相矛盾的 一个表示不可修改 一个表示要被重写
//即 抽象方法,不能被 private 和 final 修饰 ,也不能被staatic 修饰
//6.抽象类的作用:意义是为了被继承
为了 提醒重写方法 否则普通类被继承 ,不重写方法也不会报错
接口的相关概念
接口:被 interface 修饰的
注意:
1.接口里的方法都是抽象方法
2 . 接口 不能有被具体实现的方法 ,如果有,要用 default 修饰 ,该方法用的很少
3. 接口可以定义字段
4.接口当中的方法 默认是 public abstract 修饰的
5.接口当中的 成员变量,都是 默认 public static final
6**.接口 也是不可以被实例化的**
7.用 implements 来 继承接口
8.继承接口也要实现接口内的所有抽象方法
9.接口也可以发生向上转型
10 . 可以同时继承抽象类 和接口,
也可以同时实现多个接口,但是类只能,继承一个
接口的出现是为了满足Java当中多继承的要求
常用的部分接口:
comparable : 自定义类型需要比较时需要继承 comparable 接口 ,然后重写
该接口写死了就不动了
comparator : 有很多方法 是一个比较器
想根据啥排序 就根据啥排序
继承该接口后 重写方法 根据自己的 需求 来定义
根据需求继承对应接口