java中的多态案例
多态性实际上有两种:
1.方法的多态性:
1.1方法重载:相同的方法名,会根据传入的参数的类型和个数不同执行不同的方法
1.2方法覆写:同一个方法名称,会根据子类的不同实现不同的功能
2.对象的多态性:指的是发生在类的继承中,子类和父类之间相互转换
1.1向上转型(自动完成):父类 父类对象 = 子类实例
2.2向下转型:子类 子类对象 =(父类)父类实例;
由于父类可以有多个子类,而一个子类所拥有的父类个数不会太多,向上转型不会出现编译错误,而向上转型有可能出现编译时候的错误
class A{
public void print(){
System.out.println("A中的方法");
}
}
class B extends A{
public void print(){
System.out.println("B中的方法");
}
}
public class Test{
public static void main(String args[]){
A a =new A();
B b = (B) a;
b.print();
}
}
/*
Exception in thread "main" java.lang.ClassCastException: A cannot be cast to B
at Test.main(Test.java:14)
*/
以上的代码出现了类转换的异常,指的是两个两个没有关系的类对象发生强制的向下转型所带来的异常,
instanceof关键字的使用;该关键字主要是判断某个对象是否是一个类的实例:
对象 instanceof 类//返回的是boolean
class A{
public void print(){
System.out.println("A中的方法");
}
}
class B extends A{
public void print(){
System.out.println("B中的方法");
}
}
public class Test{
public static void main(String args[]){
A a = new B();
if(a instanceof B){
B b = (B)b;
}
b.print();
}
}
注意点:向下转型发生之前,一定要先发生对象的向上转型
范例:向上转型实例
class A{
public void print(){
System.out.println("A中的方法");
}
}
class B extends A{
public void print(){
System.out.println("B中的方法");
}
}
public class Test{
public static void main(String args[]){
A a = new B();//向上转型
a.print();//B中的方法
}
}
java中的多态案例的更多相关文章
- 深度分析:理解Java中的多态机制,一篇直接帮你掌握!
Java中的多态 1 多态是什么 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.用白话来说,就是多个对象调用同一 ...
- 13、java中的多态
1,多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以接收自己的子类对象.2,多态的前提 必须是类与类之间有关系.要么继承,要么实现. 通常还有一个前提:存在覆盖. 3,多态的好处 多态的 ...
- java中实现多态的机制是什么?
多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次 ...
- Java 中的多态,一次讲个够之接口实现关系中的多态
上文还没有写完,这一篇继续 Java 中的多态,一次讲个够之继承关系中的多态 https://www.cnblogs.com/qianjinyan/p/10824576.html 接口实现关系,和继承 ...
- 通过实例聊聊Java中的多态
Java中的多态允许父类指针指向子类实例.如:Father obj=new Child(); 那么不禁要发问?? 使用这个父类型的指针访问类的属性或方法时,如果父类和子类都有这个名称的属性或方法,哪 ...
- Java中实现多态的条件是什么
java中实现多态需要三个条件: 1,需要有继承关系的存在. 2,需要有方法的重写. 3,需要有父类的引用指向子类对象.
- 深入理解Java中的多态
一.什么是多态? 多态指同一个实体同时具有多种形式.它是面向对象程序设计(OOP)的一个重要特征.如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的. 二.多态是如何实现的? ...
- Java 中的多态,一次讲个够之继承关系中的多态
多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个 ...
- java中的多态总结
一.多态的概述 ava作为面向对象的语言,同样可以描述一个事物的多种形态.如Student类继承了Person类,一个Student的对象便既是Student,又是Person. Java中多态的代码 ...
随机推荐
- color 圆盘染色
Color 圆盘染色 题目大意:给你一个圆盘,等分成n个扇形,有m种颜色,每两个相邻的扇形不能相交,求染色方案数. 注释:m,n<=$10^6$. 想法:这题是小圆盘染色的加强版(小圆盘染色?) ...
- 测试驱动开发实践2————从testList开始
内容指引 1.测试之前 2.改造dto层代码 3.改造dao层代码 4.改造service.impl层的list方法 5.通过testList驱动domain领域类的修改 一.测试之前 在" ...
- MySQL的入门
SHOW VARIABLES LIKE 'storage_engine%' #查看引擎 ALTER TABLE `studten` RENAME `student1` #修改表名 ALTER TABL ...
- 使用idea新建jsp
使用idea解决新建jsp文件而找不到jsp文件模版的新建选项,这样每次创建一个新的jsp文件岂不是很耗时间? 解决办法: 就是要让idea知道你需要在这个目录下创建jsp文件 左上角,file中点击 ...
- 第二周作业(pta存在的问题)
***第一题 错题截图 错因分析:中英文符号用混 改正截图: 思路分析:(1)由输入格式可知,该程序需要用到scanf函数 (2)构建框架 (3)根据要求打入代码 **第二题(正确) 代码截图: 思路 ...
- 冲刺NO.8
Alpha冲刺第八天 站立式会议 项目进展 项目稳步进行,项目的基础部分如基本信息管理,信用信息管理等部分已相对比较完善. 问题困难 技术困难在短期内很难发生质的变化,而本项目由于选择了队员不太熟悉的 ...
- Java暑假作业
一.电影观后感 电影<摔跤吧!爸爸>观后感 二.下学期的计划与目标 大一学年总结: 参与了大大小小的学院活动,例如机器人搭建.辩论赛,也参加了学生会的部门,参与了组织活动.通过参与活动获 ...
- 团队作业7——第二次项目冲刺(Beta版本12.08-12.10)
1.当天站立式会议照片 本次会议内容:1:每个人汇报自己完成的工作.2:组长分配各自要完成的任务. 2.每个人的工作 黄进勇:项目整合,后台代码. 李勇:前台界面优化. 何忠鹏:数据库模块. 郑希彬: ...
- MySQL 服务安装及命令使用
MySQL 服务安装及命令使用 课程来源说明 本节实验后续至第17节实验为本课程的进阶篇,都基于 MySQL 官方参考手册制作,并根据实验楼环境进行测试调整改编.在此感谢 MySQL 的开发者,官方文 ...
- 《高级软件测试》Windows平台Jira的配置
昨天完成了Jira的下载,很开心地去睡觉等明天天亮秒配环境愉快进行使用,撰写文档,开始徜徉于软件管理测试实践,早日走向代码巅峰. 我们把安装和配置的过程来走一遍. 安装完成汤姆猫长这样子: 安装Jir ...