1.抽象类
含有抽象方法的类都是抽象类,但抽象类不是只有抽象方法。
如:
Public abstract class Animal(){}
抽象方法:没有方法体的方法
如:
abstract void eat();
特点:
1).必须使用abstract修饰
2).抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
3).不能直接实例化,必须通过多态形式实例化(抽象类多态)
成员特点:
1).成员变量可以是变量也可以是常量
2).有构造方法,但是不能实例化,用于子类访问父类数据的初始化
3).成员方法可以有抽象方法,用于限定子类必须完成某些动作;也可以有非抽象方法,可以提高代码复用性
2.接口
用关键字interface修饰
如:
public interface Eat(){}
接口只能通过多态方式实例化(接口多态)
接口实现类用implement表示:
类名 implement 接口名(){}
如:
public class Impl impelement Eat(){}
接口的实现类要么重写接口中的所有抽象方法,要么是抽象类。
成员特点:
1).成员变量:只能是常量,默认使用public static final修饰
2).没有构造方法
3).成员方法只能是抽象方法,默认修饰符:public abstract
3.抽象类与接口的区别: