抽象类与普通类的区别以及抽象类与接口的区别
抽象类与普通类的区别
抽象类 | 普通类 |
---|---|
不能new对象,但可以声明引用 | 可以new对象,也可以声明引用 |
抽象类中的抽象方法只有方法声明,没有方法实现 | 普通类中不能声明方法,方法必须实现 |
抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类 | 普通类中不可能有抽象方法 |
子类继承抽象类之后,必须覆盖父类当中所有的抽象方法,否则子类还是抽象类 | 子类继承父类方法可以重写也可以不重写 |
抽象类与接口的区别
接口 | 抽象类 |
---|---|
可以编译成字节码文件 | 可以编译成字节码文件 |
不能new对象 | 不能new对象 |
可以声明引用 | 可以声明引用 |
接口中的属性默认为公开静态常量 | |
接口中的方法默认为公开抽象方法 | |
没有构造器 | 有构造器 |
总结
类与类之间只有单继承,接口与接口之间可以多继承,接口与类之间可以多实现