当前位置: 首页 > news >正文

3-5、多态性

语雀原文链接

文章目录

    • 1、多态类型
    • 2、上下转型
    • 3、instanceof

1、多态类型

  • 编译时多态:方法重载
    • 在编译阶段就已经确定要调用哪个重载的方法
  • 运行时多态:方法重写
    • 具体调用哪个子类的方法要到运行的时候,结果才能确定,多态只针对行为(方法)

2、上下转型

  • 向上转型
    • 上转型对象只能调用父类定义了的变量和方法,子类新增的变量和方法访问不到的
    • 但可以访问子类重写父类的方法。(多态只针对方法)
  • 向下转型
    • 向下转型对象可以访问父类里的属性、方法,
    • 同时也可以访问子类新增的属性、方法。
public class Cat {public String name;public void eat(){System.out.println("Cat.eat()");}
}public class YeCat extends Cat{public int age;public void eat(){System.out.println("YeCat.eat()");}
}public class HomeCat extends Cat{public int age;public void eat(){System.out.println("HomeCat.eat()");}
}public class Main {public static void main(String[] aaa) {// 向上转型Cat yeCat = new YeCat();// 向上转型可以访问子类重写的方法yeCat.eat();// 报错,向上转型不可以访问子类新增的属性和方法
//        System.out.println(yeCat.age);Cat cat = new HomeCat();// 向下转型HomeCat homeCat = (HomeCat) cat;homeCat.eat();System.out.println(homeCat.age);}
}

3、instanceof

  • 用来检测某个对象是否是某个类的对象,结果是boolean值
        Cat cat = new HomeCat();// 强转能成功HomeCat homeCat = (HomeCat) cat;// 类型强转错误,HomeCat cannot be cast YeCatYeCat yeCat = (YeCat) cat;if (cat instanceof HomeCat){HomeCat home = (HomeCat) cat;} else if (cat instanceof YeCat){YeCat ye = (YeCat) cat;}
http://www.lryc.cn/news/258279.html

相关文章:

  • 什么是https 加密协议?
  • 低压无功补偿在分布式光伏现场中的应用
  • 人工智能技术在宽域飞行器控制中的应用
  • NGINX高性能服务器与关键概念解析
  • 云ssrf
  • 面试题目总结(三)
  • Kubernetes入门笔记——(2)k8s设计文档
  • LoadBalancer将服务暴露到外部实现负载均衡metallb-layer2模式配置介绍
  • 【pytest】单元测试文件的写法
  • arcgis for js 添加自定义叠加图片到地图坐标点上
  • 记录 | linux下互换键盘的Ctrl和CapsLock键
  • 【公网远程手机Android服务器】安卓Termux搭建Web服务器
  • 【银行测试】金融项目+测试方法范围分析,功能/接口/性能/安全...
  • Java网络编程——安全网络通信
  • 云原生数据库是什么?它的作用是啥?
  • 使用ansible批量初始化服务器
  • 国标GB28181安防视频云平台EasyCVR出现持续重启现象,是什么问题?该如何解决?
  • 【APP安卓测试工具】adb(Android Debug Bridge)
  • 图像融合领域的挑战
  • Tomcat配置成服务、开机自启动
  • IntelliJ IDEA创建一个spark的项目
  • 【数据库】数据库多种锁模式,共享锁、排它锁,更新锁,增量锁,死锁消除与性能优化
  • 串口通信(1)-硬件知识
  • 越南语翻译,人工翻译哪个值得信赖?
  • 攻防世界题目练习——Web引导模式(五)(持续更新)
  • attack vector
  • 好看的早上问候语早安图片,今天最新唯美温馨祝福语
  • 人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码
  • 聚类分析 | Matlab实现基于谱聚类(Spectral Cluster)的数据聚类可视化
  • 【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针测试