java--多态

在java中,对多态的核心表现有以下俩点:

  1.方法的多态性,①方法的重载:在一个类中,方法名相同,参数列表不同(参数个数,类型,次序不同),返回值相不相同没关系

                              ②方法的覆写:在不同作用域中(父类和子类),函数名相同,参数相不相同无所谓。

 2.对象的多态性:(抽象类和接口才能体会到用处)前提:方法覆写。

   俩种表现方式:

  ①向上转型(90%)用于参数统一化

//父类 父类引用 = new 子类();
Person per = new Student();

 ②向下转型(1%):当父类引用要调用子类扩充的方法时才需要向下转型

//子类 子类引用 = (子类)父类引用
Person per = new Student();
Student stu = (Student)per;//向下转型
//要发生向下转型必须先发生向上转型(认爹)
//----------------------------
Person per = new Person();
Student stu = new Student();
//错误,没发生向上转型。运行时异常ClassCaseException类型转换异常

向上转型实现:

 

 

不管是否发生向上转型,核心本质在于:使用的是哪一个子类(new在哪里),以及调用的方法在哪里被覆写了。向下转型是把父类对象转为子类对象:

 

但是向下转型在用之前必须先发生向上转型,否则会出现ClassCaseException。那么既然存在安全隐患,那如何使用才会靠谱,最好是在转之前判断一下,那就可以使用instanceof关键字,改关键字语法如下:

子类对象 instanceof 类  
返回值为boolean

参数统一化:要求定义一个方法,该方法能接受所有Person类包含其子类的实例,并调用Perosn的方法

通过这个我们清楚对象向上转型有一个最核心的用途:参数统一化

多态性总结:
1.对象多态性的核心在于方法的覆写。
1.通过对象的向上转型可以实现接收参数的统一,向下转型可以实现子类扩充方法的调用(一般不操作向下
转型,有安全隐患)。
1.两个没有关系的类对象是不能够进行转型的,一定会产生ClassCastException。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值