1. 继承
在Java中,每个对象都有一个引用值,以便可以唯一地标识它。对象通常被称为“类的实例”。
继承关系是一种重用形式,其中我们将一个类作为父类或超类,另一个类作为子类或子类(**“IS-A”**关系)。X是Y:苹果是水果。记住“单一继承”。
2. 多态
这意味着两个或更多的类可能具有相同的方法名称和签名,但代码实现不同。在Java中,通过继承定义多态行为。
它允许我们创建父类的子类,并将它们视为父类型。这有助于使不相关的类响应常见消息(允许我们根据它们的共同点操纵对象)。
3. 接口
Java的设计者认为多重继承过于复杂。作为替代方案,他们提供了接口。Java允许接口的多重继承,而不是类。接口是必须在使用接口的任何类中编码的方法列表。
接口只能有final属性(常量)和抽象方法。虽然类只能继承自另一个类,但它们可以实现尽可能多的接口。这是由于类层次结构的问题引起的。
接口也可以使用extends关键字参与继承关系。
4. 类层次结构
在面向对象的系统中,通常在进行任何编码之前就构建类及其交互的模型。
通常,超类是抽象的。抽象类是用作其他类的模板的类。
5. 抽象类
抽象类是不能实例化的类。但是,我们可以从它创建引用。抽象类可以包括属性、方法和抽象方法(一些占位符)。 (1)它们是框架的一部分:不完整。(2)它们应该在子类中完成。
6. 强制类型转换
我们始终可以将一个特定的类视为通用类。向上转型:将一个类视为其超类之一。
7. 使用接口进行设计
在类、抽象类和接口之间,我们有许多选项来设计Java解决方案。
接口的优点在于它们可以应用于继承层次结构,并支持多重继承。接口的缺点是:它们无法提供与属性交互的实现方法,因为接口无法声明属性。
抽象类的优点:它们可以提供属性和一些带有代码块的方法。抽象类的缺点是,类只能继承自一个超类。
经验法则:(1)在类层次结构中需要一致的方法集时使用接口。(2)为了最大限度地利用抽象类,在它们可以有效地提供方法实现以供其子类重用的地方使用它们。(3)总是将其作为接口,然后创建一个或多个实现该接口的实现。(4)如果接口的多个实现共享至少部分实现,请考虑将它们重构为共同的抽象类。
评论(0)