1 抽象类
概念:使用abstract修饰的类就是抽象类。如果一个类没有足够的信息能具象的描述事物,我们就可以说是抽象的。
特点:
抽象类无法直接实例化
抽象类中不一定有抽象方法
有抽象方法的类一定是抽象类
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用
2 接口
概念:接口是抽象类中的抽象类,只能拥有抽象方法,接口中成员属性都是public static final 的
特点:
1)接口不能被实例化,只能被实现,才能实例化。
2)接口只能包含方法的声明
3.抽象类和接口的区别:
抽象类中可以包含静态方法,接口中不能包含静态方法
一个类可以实现多个接口,但只能继承一个抽象类
接口可以被多重实现,抽象类只能被单一继承
接口带来的最大好处就是避免了多继承带来的复杂性和低效性,并且同时可以提供多重继承的好处。接口和抽象类都可以提现多态性,但是抽象类对事物进行抽象,更多的是为了继承,为了扩展,为了实现代码的重用,子类和父类之间提现的是is-a关系,接口则更多的体现一种行为约束,一种规则,一旦实现了这个接口,就要给出这个接口中所以方法的具体实现,也就是实现类对于接口中所有的方法都是有意义的。