java:多态性

面向对象特征之三--------多态性

在java中有两种体现:
1.方法的重载 的多态性 本类中的同名方法,体现了相同的名称方法实现不同的逻辑
方法的重写的多态性 子类对父类的重写;子类可以使用和父类一样的方法名,覆盖掉父类的逻辑
(父类的方法,想修改逻辑,但是有别的代码在调用父类的方法,可以考虑,子类继承父类,重写父类的方法)

2.对象的多态性 可以直接应用在抽象类和接口上

*java引用变量有两个类型:编译时类型和运行时类型

编译时类型由声明该变量时使用的类型决定;
运行时类型由实际赋给该变量的对象决定。
俩类型不一致时,出现多态(对象的多态)。

在这里插入图片描述

在这里插入图片描述

什么是对象的多态?????

    Student stu = new Student();
	Person per=new Person();
	//以上是正常情况
	Person a=new Student();//用父类的引用对象可以指向子类的实例


	Person per=new Person();
	per=new Student();
	//???问题:当前这个引用对象引用的是哪个实例对象------->>Student()的实例对象

在这里插入图片描述

因此:子类可以看作是特殊的父类,所以父类类型的引用可以指向子类的对象——向上转型。
在这里插入图片描述

1.对于成员变量来说:
属性是在编译时确定的。。
在这里插入图片描述
2.对于虚拟方法调用来说:
=>>Person per=new Student();
per.showInfor();//问题???调用哪个类下的showinfor方法——>>Student()类的

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

发布了18 篇原创文章 · 获赞 3 · 访问量 177

猜你喜欢

转载自blog.csdn.net/weixin_46037153/article/details/104431018