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

两个无继承关系的类,即使都继承同一父类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(类型转化异常)

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

相关推荐
要开心吖ZSH几秒前
MP4 转 WAV 音频转码方案详解(互联网医院病历AI实战-JAVE2方案)
java·ffmpeg
凸头2 分钟前
从聊天机器人到业务执行者:Agentic Orchestration 如何重构 Java 后端体系
java·开发语言·重构
希望永不加班3 分钟前
SpringBoot 跨域问题(CORS)彻底解决方案
java·spring boot·后端·spring
爱丽_3 分钟前
AQS 的 `state`:volatile + CAS 如何撑起原子性与可见性
java·前端·算法
zhuhezhang5 分钟前
一个用golang开发的文本对比工具
开发语言·后端·golang·wails
zxfBdd7 分钟前
idea + spark 报错:object hy is not a member of package com.cmcc
java·ide·intellij-idea
攒了一袋星辰8 分钟前
10万级用户数据日更与定向推送系统的可靠性设计
java·数据库·算法
王杨游戏养站系统8 分钟前
3分钟搭建1个游戏下载站网站教程!SEO站长养站系统!
开发语言·前端·游戏·游戏下载站养站系统·游戏养站系统
凸头9 分钟前
从“搜了就答”到“智能决策”:拥抱 RAG 2.0 时代的架构演进 ——Java 后端工程师视角下的 AI 应用工程化落地
java·人工智能·架构·rag
DJ斯特拉13 分钟前
JUC基础
java·jvm·juc