我刚开始学习Java,并且一直在阅读,概述并记下我的书《 Murach的Java编程(第5版)》。
尽管有我的笔记,但我仍然对Java感到困惑。我只想知道我写的笔记是否正确?我确实在网上寻求帮助(包括该论坛中的一些帖子),但是我仍然不确定自己做对了吗。
(PS:我的笔记可能需要更多帮助。我应该重用此主题还是创建新主题?)
实现关键字用于以下用途:
扩展关键字用于以下用途:
使用以下助记符:“您实现接口并扩展类”
答案 0 :(得分:0)
1)继承接口(技术上是“子接口”)。
一个接口可以扩展一个或多个其他接口。术语继承通常不应用于接口。请注意,接口根本不能声明任何方法和字段,而只能用作标记。
2)如果您不想继承所有方法和字段,则必须将其声明为抽象类。
抽象类可以具有某些方法的实现,可以具有一些非公共字段和方法,因此与接口相比有很多差异。
我建议从另一个角度看待它-接口首先声明了通信协议-因此它定义了无论实现如何都可以调用的方法。抽象类为某些方法提供了一些实现。如果您考虑了界面中的默认方法-我建议您避免将它们用作入门工具-因为它们是为特定目的而添加的,并且您在学习时几乎不需要。
extends关键字用于以下用途: 1)创建子类(如之前在第8章中所述)。
创建子类并扩展接口。
2)继承其他类(子类,子类)。
不知道与上一点有什么不同,因为子类是通过使用extends关键字通过继承创建的。所以我将其合并为语句。
答案 1 :(得分:0)
一个例子可能使概念更清晰。
class Car {
public abstract String getMake();
public abstract String getModel();
}
interface AlarmSystem {
public void setPanicAlarm(boolean state);
}
现在您可以创建一个这样的类:
class MyCar extends Car implements AlarmSystem {
private boolean panic = false;
public String getMake() { return "Ford"; }
public String getModel() { return panic ? "Loud Mustang" : "Mustang" };
public void setPanicAlarm(boolean state) { panic = state; }
}
您可以说“ MyCar是一辆汽车”。 “ IS A”概念很重要。使用extends
与说“ IS A”相同。但是说“ MyCar是一个警报系统”是没有意义的。那是“ HAS A”关系。说“ MyCar是一辆汽车,并且有一个警报系统”。
构建类时,请问自己“类”是否是其超类的实例(它是扩展的实例)。
在该示例中,您可以想象还有其他没有报警系统的汽车,这很好。有些没有。
所以写笔记的更好方法是:
Implements关键字用于以下用途:
extends关键字用于以下用途: