java学习第十七课
暑假自学来到第十七课,本节课学习接口 interface,有了上一节抽象类的基础,理解起来顺畅不少,接口和抽象类作用相近,但规则差别很大,也是今后写代码常用的内容。
接口用 interface 定义,和类的创建方式不一样,接口里面大多是抽象方法,JDK 新版本可以定义静态方法、默认方法。接口没办法直接 new 创建对象,只能让普通类去实现它。一个类实现接口后,必须把接口里所有抽象方法全部写出来补齐,不然这个类就只能定义成抽象类。还有一个很关键的特点,一个类可以同时实现好几个接口,和继承只能单继承有明显区别。
上课练习的时候,我出现了不少小失误。一开始经常把 class 和 interface 写混,分不清什么时候该定义类、什么时候该定义接口;刚开始还习惯给抽象方法加多余修饰符,慢慢记住接口里的抽象方法默认就是 public,不用额外标注。我还混淆了接口和抽象类的使用场景,不知道什么时候选抽象类、什么时候用接口,简单总结后理清了思路:描述一类事物共同特征用抽象类,用来定义功能标准、扩展能力就用接口。
对比之前学的抽象类,抽象类侧重描述事物本身的属性与行为,只能单继承;接口偏向搭建行为规范,支持多实现,更加灵活。抽象类里可以有成员变量、构造方法,接口不能有普通成员变量,也没有构造方法,无法完成对象初始化。
整体来看这节课难度适中,难点在于分清接口与抽象类的区别,记牢实现类必须重写全部抽象方法。接口的核心就是定一套行为标准,不同的类按照各自的特点去落地实现。接下来我会多写简单小案例区分二者用法,慢慢熟练选择合适的结构,准备预习下一节多态的知识点。

浙公网安备 33010602011771号