java抽象类和普通类的区别,抽象类和接口的区别

java抽象类和普通类的区别

1.抽象类不能被实例化。

2.抽象类可以有构造函数,被继承时子类必须继承父类一个构造方法,抽象方法不能被声明为静态。

3.抽象方法只需申明,而无需实现,抽象类中可以允许普通方法有主体

4.含有抽象方法的类必须申明为抽象类

5.抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类。

抽象类和接口的区别

  Abstract Class Interface
实例化 不能 不能
继承关系,一个类只能继承一个类 一个类可以实现多个接口
数据成员(变量) 和类一样可以有自己的 一般没有,只可以时public static final修饰的
方法 可以有私有方法,非abstract方法必须实现

只有abstract方法

实现 extends implements
表示关系 is - a like - a

抽象类也是类

final不可修饰抽象类和抽象方法和接口

private修饰的方法不可被覆盖,默认被final修饰

猜你喜欢

转载自blog.csdn.net/huofuman960209/article/details/88094812