抽象类:使用abstract修饰的类
抽象方法:没有方法体并且使用abstract修饰符修饰的方法。 必须放在抽象类中。
抽象类不一定包含抽象方法。
只有方法的定义和方法的实现交给继承他的子类去完成。
继承自抽象类的子类,必须实现抽象类中的所有!抽象方法。
优点:易于扩充新的类。抽象方法必须定义在抽象类或接口中。
有抽象方法必是抽象类,抽象类中的方法不一定是抽象方法
使用abstract修饰的类,不能创建实例即new;
普通类有的成员(方法字段构造器)抽象类也有;
接口:
修饰符只能是默认的或public
interface implements
实现类的方法的访问权限必须大于等于接口的方法声明的访问权限
接口里的方法都是抽象方法字段(数据)是全局静态常量即具有public static final属性(一般不写)
如果实现接口的类不是抽象类,他必须实现接口的所有方法。
被实现的接口可以有多个。(与类的继承的不同)
接口之间也可以有继承关系,子接口拥有父接口的方法,自己还可以定义方法
接口也可实现多态
抽象类和接口的比较:
不同点:①抽象类是单继承,接口是多实现。②抽象类有非抽象方法,接口全是抽象方法。③抽象类的方法的修饰符4中都有,接口的方法都是public。④抽象类有构造方法。
相同点:都不能实例化,都可以实现多态