java抽象类和普通类的区别
1.抽象类不能被实例化。
2.抽象类可以有构造函数,被继承时子类必须继承父类一个构造方法,抽象方法不能被声明为静态。
3.抽象方法只需申明,而无需实现,抽象类中可以允许普通方法有主体
4.含有抽象方法的类必须申明为抽象类
5.抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类。
抽象类和接口的区别
Abstract Class | Interface | |
实例化 | 不能 | 不能 |
类 | 继承关系,一个类只能继承一个类 | 一个类可以实现多个接口 |
数据成员(变量) | 和类一样可以有自己的 | 一般没有,只可以时public static final修饰的 |
方法 | 可以有私有方法,非abstract方法必须实现 | 只有abstract方法 |
实现 | extends | implements |
表示关系 | is - a | like - a |
抽象类也是类
final不可修饰抽象类和抽象方法和接口
private修饰的方法不可被覆盖,默认被final修饰