当前位置: 首页>后端>正文

Java基础系列四(接口和抽象类)

1.什么是抽象类?

1.使用关键字abstract修饰的类称为抽象类。

2.抽象类与普通类的区别:

????抽象类必须用abstract修饰,普通类不可以。

????抽象类不允许实例化,普通类可以实例化。

3.抽象类的规则

(1)抽象类不允许实例化,因为抽象方法是半成品。

(2)抽象类中可以有抽象方法,也可以没有抽象方法

(3)抽象类中可以有普通方法,也可以没有普通方法

(4)抽象类中可以有属性,也可以没有属性

(5)抽象类中可以有构造函数

(6)若类中有抽象方法,那么类必须是抽象类

(7)如果子类继承了抽象类,那么子类就必须实现抽象类中所有的抽象方法,否则子类也是抽象类。

2.什么是接口?

1.把程序中的接口理解成抽象类,注意是理解成抽象类,但接口不是抽象类。

2.接口中可以定义抽象方法,让子类去实现,从而实现多态。

3.把接口中定义的方法理解为“接口定义的子类的规范”,子类实现接口中的方法可以理解为子类遵循了接口的规范

4.接口的规则

(1)接口的访问权限是public或默认。

(2)接口中可以定义属性,但是属性必须是public static final修饰的,public static final可以省略。

? ? ? ? ?因此接口中的属性是常量

(3)接口中可以定义方法,但是方法必须是public abstract修饰的,public abstract可以省略。

? ? ? ? ?因此接口中只能定义抽象方法

(4)子类要实现接口中所有的抽象方法,否则子类也是抽象类。

(5)子类只能继承一个父类,但是可以实现多个接口,多个接口之间用逗号分隔。

(6)子类实现接口中的方法时,访问修饰符必须是public。

3.接口和抽象类的异同是什么

相同点:

????1.接口和抽象类都不能实例化。

????2.都是引用类型。

????3.都可以包含抽象方法。

不同点:

????1.子类只能继承一个抽象类,通过extends继承;

? ? 子类可以实现多个接口,通过implements实现。

????2.抽象类可以有构造方法,接口没有构造方法。

????3.抽象类可以有常量,抽象方法,也可以有变量,普通方法;

? ? 接口只能有常量和抽象方法。

????4.抽象类的子类实现抽象方法时权限范围不能缩小;

? ? 接口中子类实现抽象方法时权限修饰符必须是public。

今天关于接口和抽象类就介绍到这,接口和抽象类的异同点是面试常会问到的点,需要特别注意。欢迎小伙伴们留言分享。


https://www.xamrdz.com/backend/3db1931631.html

相关文章: