Java基础(关于多态的理解)

本文深入解读了编程中的多态概念,介绍了其在继承和重写中的应用,以学校上课铃响为例说明。讨论了多态的前提条件,包括继承、重写实例以及instanceof和转型的概念。还涵盖了多态在成员变量和函数特性上的体现。

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

1.多态的官方概念:

1.百度百科:
在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。

即:在程序中,是先有父类,然后通过继承才有子类;但是在现实世界和实际应用中,是先有的不同子类,再通过父类这个统一的接口去调用他们,或者对同一件事有不同的反应和状态。

同一方法可以根据发送对象的不同而采取不同的行为方式。


2.举例

比如在学校,上课铃响要上课了(lesson()方法),学生和老师对这件事情做出不同的反应动作——学生的动作是“学”,而老师的动作是“教”。(假设Person类,Student类和Teacher类是他的子类,然后都有lesson()方法,因此构成重写。)

Person p1 = new Student();
Person p2 = new Teacher();
p1.lesson();//调用的是子类Student重写过的方法——学;
p2.lesson();//调用的是另一子类Teacher重写过的方法——教。
(可以这么说,通过重写来实现多态)

因此可以总结多态的前提
1.继承;父类引用指向子类对象
   Father f = new Son();
2.重写:
   通过调用父类中被子类重写过的方法,调用其他方法不构成多态。
(重写的前提:
   1.不是static方法
   2.不是private(private对子类不可见<不可继承>)
   3.不是final修饰(位于常量池))

3.其他

其他的关于:

  • instanceof关键词
  • 多态中成员变量和成员函数的特点
  • 向上转型和向下转型

看这篇:http://t.csdn.cn/XhqyS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值