Java面向对象思想之 多态

本文详细探讨了Java面向对象中的多态概念,解释了多态如何通过继承关系体现不同形态,以及如何在父类引用中指向子类对象,实现同一行为的不同效果。同时,文章还介绍了几种常见的运行时异常,并通过实例展示了多态的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java面向对象之 多态

多态:
同一个对象,体现出来的多种不同的形态(身份),导致将
一种行为表现为不同的效果
要想实现多态的效果,需要先有继承关系
多态的体现:
父类的引用,指向子类的对象 如Teacher继承Person
//原来创建对象的时候
Teacher t = new Teacher();//这个老师是个老师
多态的体现:
Person p = new Teacher();//这个人是个老师
p只能调用父类中定义的属性和方法,体现出来的是人的身份
强制向下转型时可能会出现一个运行时异常:ClassCastException(造型异常)
如果想要避免出现运行时异常可以运用instanceof关键字判断当前引用指向的是不是后面的类型
见到的运行时异常:inputMissMathException 输入不匹配
NumberFormatException数字格式化异常
ArrayIndexOutOfBoundsException数组索引越界
NegativeArraySizeException 数组长度负数 new数组的时候,给的长度必须时正数的。负数不行
NullPointerException空指针异常 Person p = null;
ArithmeticException 算数异常 1/0;
ClassCastException 造型异常 将对象的类型还原时,与真实对象不匹配
StackOverflowError栈内存溢出错误

						Animal--父类
					name属性,eat sleep
			Person						Pig
		name属性  重eat 重sleep 独speak			name属性 重sleep

Teacher Student
name属性 重eat 独有teach name属性 重speak 独study

					Object o = new Teacher();
					o.hashCode o.toString o.equals o.wait o.natify o.natifyAll o.finalized
					造型
					Animal a = (Animal)o;
					a.hashCode  a.toString a.name a.eat a.sleep
					Person p = (Person)a;
					p.name p.eat p.sleep  
					Teacher t = (Teacher)p;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

86822

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值