一.抽象类:包含抽象方法的类。(如果)
1.抽象方法:用absract修饰的仅有声明而没有方法体的方法。如:abstract void f();
2.抽象类的使用:抽象类需要被继承才能使用,如果从一个抽象类继承,并创建新类的对象,那么必须为基类中的所有抽象方法提供方法定义。
3.抽象类和抽象方法的好处:是类的抽象性明确起来,使我们更容易的将公共方法沿着继承层次结构向上移动。
二.接口:通过interfce关键字产生的一个完全抽象的类,没有提供任何具体的实现,允许创建者确定方法名,参数列表和返回类型,但是没有方法体,方法默认public。
1.接口实现:通过关键字implements来使用,个类通过继承接口的方式,从而来继承接口的抽象方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
interface CanFighet{}
interface Canfit{}
class Act implements CanFighet,CanSwim{}
三.抽象类和接口的区别:
1. 一个类实现接口、必须实现接口里的所有方法,继承抽象类的话、是可以不全部实现他的所有方法的。但是你可以重写他的方法
2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
5.接口没有构造方法,抽象类可以构造函数
6.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
7.抽象类里可以没有抽象方法,接口中必须是抽象方法