Java 中的多态性
javajava programming java 8
多态性是指对象具有多种形式的能力。OOP 中多态性最常见的用途是使用父类引用来引用子类对象。
任何可以通过多个 IS-A 测试的 Java 对象都被视为多态的。在 Java 中,所有 Java 对象都是多态的,因为任何对象都会通过其自身类型和 Object 类的 IS-A 测试。
重要的是要知道访问对象的唯一可能方法是通过引用变量。引用变量只能是一种类型。声明后,引用变量的类型就无法更改。
只要引用变量未声明为 final,就可以将其重新分配给其他对象。引用变量的类型将决定它可以在对象上调用的方法。
引用变量可以引用其声明类型的任何对象或其声明类型的任何子类型。引用变量可以声明为类或接口类型。
示例
让我们看一个例子。
public interface Vegetarian{} public class Animal{} public class Deer extends Animal implements Vegetarian{}
现在,Deer 类被认为是多态的,因为它具有多个继承。以下对于上述示例均正确 −
- A Deer IS-A Animal
- A Deer IS-A Vegetarian
- A Deer IS-A Deer
- A Deer IS-A Object
当我们将引用变量 facts 应用于 Deer 对象引用时,以下声明是合法的 −
示例
Deer d = new 鹿(); 动物 a = d; 素食主义者 v = d; 对象 o = d;
所有引用变量d、a、v、o都引用堆中的同一个Deer对象。