JAVA基础——抽象类和接口的区别
属性 | 抽象类 | 接口 |
默认的方法实现 | 可以有默认的方法实现 | 不能有默认的方法实现 |
子类的实现 | 子类只需要实现抽象方法接口,有默认实现的可以重写,可以不重写。 | 子类必须实现所有方法 |
构造器 | 抽象类是一个类,可以有构造器 | 不是类,不能有构造器 |
与普通类的区别 | 除了不能实例化,其他都可以 | 不是类 |
访问修饰 | 可以使用public、protect、default修饰 | 只能用public修饰 |
是否可以有main方法 | 可以 | 不可以 |
多继承 | 不可以,java只支持单继承 | 该接口可以继承多个接口。 |
速度 | 快 | 比抽象类慢,因为需要去找实现。 |
添加新的方法 | 如果需要在抽象类中添加新的方法,只需要在这个类中添加新的方法和实现就可以了,如果只添加新的方法而不实现,那么所有的子类就需要重新实现该方法 | 添加新方法之后,所有的实现该接口的类都需要实现新的方法。 |
属性 | 抽象类 | 接口 |
默认的方法实现 | 可以有默认的方法实现 | 不能有默认的方法实现 |
子类的实现 | 子类只需要实现抽象方法接口,有默认实现的可以重写,可以不重写。 | 子类必须实现所有方法 |
构造器 | 抽象类是一个类,可以有构造器 | 不是类,不能有构造器 |
与普通类的区别 | 除了不能实例化,其他都可以 | 不是类 |
访问修饰 | 可以使用public、protect、default修饰 | 只能用public修饰 |
是否可以有main方法 | 可以 | 不可以 |
多继承 | 不可以,java只支持单继承 | 该接口可以继承多个接口。 |
速度 | 快 | 比抽象类慢,因为需要去找实现。 |
添加新的方法 | 如果需要在抽象类中添加新的方法,只需要在这个类中添加新的方法和实现就可以了,如果只添加新的方法而不实现,那么所有的子类就需要重新实现该方法 | 添加新方法之后,所有的实现该接口的类都需要实现新的方法。 |
交行软件开发 | 已投 |
大华 | 已投 |
华三 | 已投 |