区别1:抽象类体现继承关系,一个类只能単继承。接口体现实现关系,一个类可以多实现。
区别2:抽象类中可以定义非抽象方法和抽象方法,子类继承后可以直接使用非抽象方法。接口的方法都 是抽象的,必须由子类去实现。接口中的成员都有固定的修饰符。
区别3:抽象类有构造方法,用于给子类对象初始化。而接口没有构造方法。
相同点1: 都不能被实例化
相同点2: 子类或者实现类都必须实现接口或者抽象类中的所有方法
特点1:抽象类不可以实例化,即不能用new创建对象。抽象类必须由其子类覆盖了所有的抽象方法后, 该子类才可以实例化,否则,这个子类也是抽象类。
特点2:抽象类abstract关键字不能和哪些关键字共存:
- final 因为final修饰的方法不能被继承。
- static因为类.方法(),此方法没有方法体,没有意义。
- private 因为抽象方法是要被子类覆盖的,加上private子类就不知道这个方法了。
特点3:接口中声明变量必须是 而且默认是 public static final的,接口中定义的方法都是 而且默认是abstract、 public的。接口里的数据成员必须初始化,且全是常量,不是变量。
特点4:接口是抽象类的 变体( 你没看错 ), 里面所有的方法都是抽象的 所以是public abstract, 接口也可以通过关键字extends来继承其他接口。格式如下所示:
class 类名称 implements 接口A,接口B{ //接口的实现}
interface 子接口名称 extends 父接口1,父接口2,...{}
489

被折叠的 条评论
为什么被折叠?



