抽象类:
- 抽象类:被abstract修饰,并且可以包含抽象方法的类
- 抽象方法:被abstract修饰,并且没有方法体的方法
- 特点:
- 抽象类还是抽象方法,都要用abstract修饰
- 抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类
- 抽象类不能直接创建对象,但可以用多态的形式创建对象
- 子类继承抽象类,要么重写抽象类中所有的抽象方法,要么子类也是一个抽象类
- 抽象类的成员:
- 成员变量,常量
- 构造方法:用来给子类继承的时候,初始化抽象类中的成员变量的
- 普通成员方法,抽象方法
接口
- java中的接口是对行为的抽象
- 接口中定义的行为指的是扩展的行为,吃饭,睡觉,打豆豆
- 类中定义的行为指的是普遍的行为,吃饭,睡觉,喝水,走路
- 特点:
- 定义接口interface
- 接口和类的关系是实现implements
- 接口不能直接创建对象,可以使用多态的形式创建对象
- 一个实现类实现一个接口,要么重写接口中的所有抽象方法,要么这个类是一个抽象类
- 接口中的成员特点:
- 接口中的变量默认被public static final,所以变量都是常量并且是静态的
- 接口中的方法默认被public abstract,所以方法都是抽象方法
- Object类:是所有类的根类,我们见过的所有的类都直接或间接的继承自Object类
类和接口的关系:
- 类和类:继承,只支持单继承,支持多层继承
- 类和接口:实现,可以单实现,也可以多实现
- 接口和接口:继承,可以单继承,也可以多继承
- 抽象类和接口的区别
- 定义区别
- 抽象类:定义用abstract class
2. 接口:定义用interface
-
与类的关系不同
- 抽象类 – 继承
- 接口 – 实现
-
设计理念
-
抽象类:是对事物的抽象,抽象类定义的是你有我也有,你会我也会的,放在抽象类中定义,吃饭,睡觉,喝水
-
接口:是对行为的抽象,是扩展的,特殊的行为的抽象,你会我不会的,游泳,打豆豆
-
-
成员区别
- 抽象类:变量,常量,构造方法,普通方法,抽象方法
- 接口:常量和抽象方法