(多态)向上和向下转型的注意

两个无继承关系的类,即使都继承同一父类Fruit,但是Apple和Banana毫无关联,所以不能苹果类对象不能转型为香蕉类,只有有继承关系的类,才能向上和向下转型。

程序代码实现如下:

java 复制代码
class Fruit{

}

class Apple extends Fruit{
    public void fun1(){
        System.out.println("红苹果");
    }
}


class Banana extends Fruit{
    public void show1(){
        System.out.println("绿香蕉");
    }
}

public class hahah {
    public static void main(String[] args) {
        Fruit f1 = new Apple();

//        f1.fun1();

//        Apple a1 = (Apple) f1;
//        a1.fun1();

        Banana a2 = (Banana) f1;
        a2.show1();



    }
}

语句没有报错,但是程序运行报错,结果如下:

或者报错ClassCastException(类型转化异常)

总结:两个没有直接继承关系的类,互相不能多态表示,更不能相互向上和向下转型。

相关推荐
周杰伦_Jay4 分钟前
【Java集合与线程池深度解析】底层原理+实战选型+避坑指南(附代码)
java·开发语言·python
老王头的笔记7 分钟前
Spring支持的消费器模式,支持在当前事务提交、或回滚的前、后执行业务操作
java·windows·spring
努力学习的少女9 分钟前
对SparkRDD的认识
开发语言·前端·javascript
代码or搬砖12 分钟前
Java中操作Redis
java·开发语言·redis
海上彼尚17 分钟前
Go之路 - 3.go的数据类型与转换
开发语言·后端·golang
Li_76953226 分钟前
Spring Cloud — SkyWalking(六)
java·后端·spring·spring cloud·skywalking
2201_7578308734 分钟前
SpringBoot
java·spring boot·后端
FAFU_kyp43 分钟前
Java基础与核心知识面试题逐字稿模板
java
程序员西西1 小时前
深入剖析 Java 中的 ZGC 机制:原理、优势与实践
java·后端·算法
月明长歌1 小时前
【码道初阶】Leetcode.189 轮转数组:不熟悉ArrayList时踩得坑,被Arraylist初始化骗了?
java·算法·leetcode·职场和发展