本文共 1332 字,大约阅读时间需要 4 分钟。
对象的转型是面向对象编程中的多态性体现。在Java中,对象的转型分为向上转型和向下转型。以下是详细的解释和示例:
向上转型是指将子类对象赋值给父类引用。这种转型在Java中是自动进行的,因为子类是父类的扩展,父类引用可以存储子类对象。
class Father { String str; int num; void Function() { System.out.println("Father's Function"); }}class Son extends Father { char ch; void Fun_son() { System.out.println("Son's Fun_son"); } void Function() { super.Function(); System.out.println("Son's Function"); }}class Test { public static void main(String[] args) { Son a = new Son(); Father b = a; // 向上转型,b引用指向Son对象 b.str = "abc"; b.num = 123; b.Function(); // 调用Son类的Function方法 }}
Son a = new Son();
创建一个Son对象a。Father b = a;
将a赋值给Father类型的引用b,实现了向上转型。b.str = "abc";
由于b是Father引用,可以直接访问Son对象a的str成员变量。b.Function();
调用的是Son类的Function方法,因为b引用指向的是Son对象。向下转型是指将父类对象赋值给子类引用,需要使用强制转换操作,否则会导致编译错误。在运行时,必须确保父类对象实际上是子类类型,否则会抛出ClassCastException。
class Test { public static void main(String[] args) { Father A = new Father(); // 创建一个Father对象 Son B = (Son) A; // 向下转型,B引用指向Father对象 B.Fun_son(); // 调用Father的Fun_son方法,无法访问Son特有的成员变量 }}
通过这些示例,可以更好地理解Java中的多态性以及引用类型的转换机制。
转载地址:http://qslr.baihongyu.com/