抽象类、接口、equals、compareTo
什么是抽象方法 ?
区分于正常的方法
1.使用了 abstract 修饰符
该修饰符修饰方法 则该方法就是抽象方法 该修饰符修饰类 , 则该类就是抽象类
2. 没有方法体
3. 小括号之后用 分号 作为结尾
什么是抽象类 ?
abstract 修饰的类就是抽象类
抽象类可以认为是 部分抽象的类
后期还有 完全抽象
这里的抽象 指的是内部中无法描述的部分 -> 抽象方法
抽象类 可以包含什么成员 ?
1. 属性
2. 静态字段 类变量
3. 构造器
4. 正常方法
5. 静态方法
6. 抽象方法
抽象类的特性
1. 必须 abstract 修饰
2. 可以有构造器 , 但是不能 实例化对象 不能 new 构造器([实参]);
3. 抽象类也是类 比较特殊的一种类 , 可以继承正常类 也可以继承抽象类 单继承
4. 抽象类可以被继承 但是继承抽象类 和 继承普通的类有所不同
5. 抽象类中 可以没有抽象方法
抽象类的应用场景
经常作为底层的抽象基类存在
例如在集合家族中 , 扮演了 接口(完全抽象) 和 正常类 中间的 缓冲环节
抽象类是 完全抽象 -> 部分抽象 -> 正常类 , 中间的过渡
接口
接口中 可以包含什么成员 ?
1. 公共的public 静态的static 常量final
不写的话 默认就是 public static final 修饰的
如果更改权限 那么报错
2. 公共的抽象方法
不写的话 默认就是 public abstract 修饰的
规定其他的修饰符 例如 static final 会报错
接口的特性 :
1. 接口不可以实例化对象
2. 接口可以继承接口 接口是多继承 , 多个父接口用 逗号 隔开 关键字仍然用 extends
接口继承接口之后 会继承父接口的抽象方法 , 即继承了 规范和要求
3. 类 可以实现接口 , 实现和继承会有所不同
继承指的是 类继承类 , 接口继承接口 extends
实现指的是 类 实现 接口 implements
类实现接口之后 , 接口类型也是类的父类型 , 也可以方法重写 , 也可以多态
类和接口是多实现的 , 一个类可以实现多个接口 , 多个父接口用逗号隔开
4. 接口是引用数据类型 接口类型引用可以存储子类对象