多态
多态
1. 多态的类型
结合韩老师视频和黑马2版课本,自己对多态的理解
1com.公司名.项目名.业务模块名2com.hspedu.oa.model3com可以改变,他表示一级目录java
1.1 方法的多态
第一种:方法的重载或者重写导致不同的子类的对象调用相同名字的方法时,显示不同的形态,即输出不同的结果。(重写就是返回类型,函数名,参数列表三者严格相同;重载就是函数名相同,参数列表必须不同,其余无所谓)。
1.2 对象的多态
第二种:编译时的类型和运行时的类型不一样(就是创建子类对象后把它赋值给父类引用变量:Animal animal=new Cat()😉,相同引用类型的变量调用同一个名字的方法,呈现出的不同形态,涉及到对象的类型转换。
对于对象的多态分为向上转型和向下转型
向上转型:将父类的引用指向子类的对象,即(子类对象实例化后赋值给父类类型的变量,相当于将子类对象当作父类对象来使用)
1.3 接口的回调
第三种:实现该接口的子类的实例化对象可以赋值给接口类型的变量,具体参考博客园Java的两种实现多态的方式以及区别 - 爱吃雪糕的小布丁 - 博客园如:
-
interface JDBC(){} public class mysql(){} public class test(){ psvm(){ Jdbc jdbc = new mysql(); } }
上述图片解释,为什么接口类型的对象无法使用实现类特有的方法,但却可以使用接口方法和object类的方法。一句话简单理解就是,编译器不知道的,jvm虚拟机都知道。至于虚拟机为什么知道,参考下面:
2. 区分几个概念
首先区分”引用“,”引用变量“,”父类引用“这三个词的概念。
引用:表示一个指针指向某个对象,相当于仅仅声明,并没有实例化这个指针。
引用变量:将这个指针实例化,用于指向对象在内存中的地址,其本身不占据独立的内存空间,和指向的变量共用内存空间。
父类引用:表示一个父类类型的引用,即这个引用类型是父类类型。
和中文里面”引用“意思不同,中文意思是在文章或讲话中直接使用别人的言论或资料。
作者:yzh先生
博客:https://www.cnblogs.com/ZiJun
本文版权归作者和博客园共有,转载请在文章中注明原文链接:https://www.cnblogs.com/ZiJun/p/18755661 ,愿尊重劳动成果,谢谢!
若有关于博客内容的各种问题,欢迎在评论区讨论或发消息,让我们一起进步!