抽象类: 被abstract修饰的类就是抽象类
抽象方法:方法有,不知道如何定义方法体,那就不定义
1. 被abstract修饰的方法叫抽象方法
2. 抽象方法没有方法体
3. 抽象方法必须存在与抽象类中
注意:
- 抽象类不能实例化
- 抽象方法必须存在抽象类中
- 抽象类中可以存在具体方法,也可以有抽象方法
- 抽象方法一定要被重写
- 重写类的使用:
- 具体的子类: 必须重写所有的抽象方法+按需新增
- 抽象的子类:按需重写抽象方法+按需新增
抽象方法被重写过一次,就可以不被重写了
abstract 不能和static,final,private,native 不能一起使用
接口
接口理解为一个特殊的抽象类
就是功能点的集合
接口的优点:
- 避免单继承的局限性
- 解耦
- 提高代码的复用性
- 定义开发规范
定义接口:使用一个interface定义接口
组成:
jdk1.7及之前版本的要求:
1. 公共的静态的常量 public static final 数据类型 变量名 = 值;
默认修饰符为public static final,修饰符可以选择性的省略 可以通过接口名字使用
2.公共的抽象的方法 public abstract 返回值类型 方法名(); 默认修饰符为public abstract,修饰符可以选择性的省略
注意:
- 接口不能实例化
- 抽象必须重写
- 接口的使用:
1. 具体的实现类:实现的接口中的所有的抽象方法+按需新增
2. 抽象实现类:实现部分抽象方法,按需新增 - 类只能单继承,但是可以多实现接口,使用implements关键字进行实现,多个接口之间使用,分隔
- 类和类之间只能单继承
类与接口之间只能类实现接口,可以多实现
接口与接口之间,只能继承,但是可以多继承
6.类要后继承后实现