一、抽象类
1.抽象类的含义
抽象方法就是没有具体方法体的方法,一个类中如果有抽象方法,该类必须定义为抽象类。
2.抽象类的特点
(1)得有abstract关键字修饰。
(2)抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。
(3)抽象类不能实例化,但可以通过子类对象实例化[抽象类多态]。
(4)抽象类的子类:要么是抽象类;要么重写抽象类中的所有方法。
3.抽象类的成员访问特点
成员的特点:
成员变量 | 构造方法 | 成员方法 |
---|---|---|
既可以是变量 | 空参构造 | 抽象方法 |
也可以是常量 | 有参构造 | 普通方法 |
二、接口
1.含义:
接口就是一种公共的规范标准,只要符合标准,就可以使用。java中的接口更多的体现在对行为的抽象!
2. 接口的特点
接口用关键字interface修饰;
类实现接口用implements表示;
接口不能实例化,但可以通过实现类对象实例化,接口多态。
接口的子类,要么也是抽象类,要么重写接口中的所有方法。
3.接口的成员特点
成员变量:只能是常量,默认修饰符:puiblic static final;
没有构造方法(接口没有具体存在);
成员方法:只能是抽象方法,默认修饰符:public abstract
此外,在JDK8,JDK9 中接口的方法有一些新特性,感兴趣的可以查阅资料。
三、区别
1.抽象类和接口的区别
名称 | 成员区别 | 设计区别 |
---|---|---|
抽象类 | 变量,常量;有构造方法;有抽象方法,也有非抽象方法 | 对类抽象,包括属性、行为 |
接口 | 常量;抽象方法 | 对行为抽象,主要是行为 |