Java多态(面试考点,不要因为基础而忽视)
面向对象的三大特性:继承封装,多态
从一定角度来看,封装和继承几乎都是为多态准备的
定义
指的是不同对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
多态要有动态绑定,否则就不是多态,方法重载也不是多态(因为方法重载是编译期决定好的,没有后期也就是运行期的动态绑定)
当满足这三个条件 1.有继承 2. 有重写 3. 要有父类引用指向子类对象
作用
消除类型之间的耦合关系
多态的好处
1)可替换性
2)可扩充性
3)接口性
4)灵活性
Java中多态的分类
分为方法的多态和类的多态
1)person为父类,student为子类,那么pesron p = new student();
2)fliable为接口,bird为实现接口的类,那么:fliable f=new bird();
3)fliable为抽象类,bird为继承fliable的类,那么:fliablef=new bird();
声明了person p=new student();我想将p转为student的可不可以?当然可以,但是就得强制转换了(儿子想成为父亲直接来,父亲想成为儿子你就强来)
class A{public String show(D obj)...{return ("A and D");}public String show(A obj)...{return ("A and A");}}class B extends A{public String show(B obj)...{return ("B and B");}public String show(A obj)...{return ("B and A");}}class C extends B{}class D extends B{}class E{public static void main(String [] args){A a1 = new A();A a2 = new B();B b = new B();C c = new C();D d = new D();System.out.println(a1.show(b)); //①System.out.println(a1.show(c)); //②System.out.println(a1.show(d)); //③System.out.println(a2.show(b)); //④System.out.println(a2.show(c)); //⑤System.out.println(a2.show(d)); // ⑥System.out.println(b.show(b)); //⑦System.out.println(b.show(c)); //⑧System.out.println(b.show(d)); //⑨ }}(三)答案① A and A② A and A③ A and D④ B and A⑤ B and A⑥ A and D⑦ B and B⑧ B and B⑨ A and D
Java多态(面试考点,不要因为基础而忽视)相关推荐
- java常见面试考点(二十五):CAS是什么
java常见面试考点 往期文章推荐: java常见面试考点(二十):Elasticsearch 和 solr 的区别 java常见面试考点(二十一):单点登录 java常见面试考点(二十二 ...
- java常见面试考点(十一):git与svn区别
java常见面试考点 往期文章推荐: java常见面试考点(六):深入理解String类型 java常见面试考点(七):递归与迭代 java常见面试考点(八):成员变量与局部变量 ja ...
- 【JVM系列】一步步解析java执行内幕,java初级面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索hairyang001加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各 ...
- java 多态判断非空_Java 面试知识点解析基础知识
文本公众号来源: 我没有三颗心脏作者: 我没有三颗心脏 (一)Java 基础知识点 1)面向对象的特性有哪些? 答:封装.继承和多态(应要多算一个那就是抽象) 封装是指将对象的实现细节隐藏起来,然后通 ...
- Java开发面试高频考点学习笔记(每日更新)
Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6. ...
- java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...
本文已经收录自 https://github.com/Snailclimb/JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- BTA 常问的 Java基础40道常见面试题及详细答案,java初级面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- java面试题——java基础(四),java初级面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
最新文章
- linux目录为root所有文件,linux获取文件所有目录/文件夹的例子linux操作系统 -电脑资料...
- CMU提出「十字绣网络」,自动决定多任务学习的最佳共享层
- Oracle中case when用法
- wampserver的mysql启动与环境变量设置
- 查看linux内存优化,Linux性能优化和监控系列(三) 分析Memory使用状况
- Zabbix 通过 API 监控 k8s | 技巧
- mysql 容灾 灾备 备份
- java最小泛型demo
- php分页代码简单实现
- android mmkv使用_锦囊篇|一文摸懂SharedPreferences和MMKV(一)
- Linux mysql 允许远程连接
- 狂雨小说(KYXS)CMS 代码审计
- 身份证前6位数据/行政区划分代码
- 清北学堂济南刷题班day1
- 解决Android弹出Dialog小米手机需要打开“后台弹出界面”的权限问题
- oppo小布机器人_OPPO小布助手2.0全新版本来袭,做你身边最聪明的AI语音助手
- Reinforcement Learning——Chapter 2 Multi-armed Bandits
- 记一次muse-ui 使用
- Svn中的tag标签的用法和意义
- LeetCode刷题笔记2——数组2
热门文章
- 详解keras中的Mask机制
- 计算机科学与导论论文样例,计算机科学导论论文684413422
- 【arXiv2022】GroupTransNet: Group Transformer Network for RGB-D Salient Object Detection
- 游戏开发与实现南梦宫笔记
- 万代南梦宫(中国)旗下数字娱乐、玩具娱乐业务整合;IBM简化混合云上关键任务应用的现代化进程 | 全球TMT...
- 个人头像-----资源
- 【大数据】《红楼梦》作者分析(QDU)
- win10重装系统后连不上公司服务器,Win10电脑重装系统后不能上网怎么办?
- input苹果6点击事件无效
- JavaFXでJava RIA開発はどれくらい変わるの?