多态

多态

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();
    }
    
    }
    

image-20250213215810555

上述图片解释,为什么接口类型的对象无法使用实现类特有的方法,但却可以使用接口方法和object类的方法。一句话简单理解就是,编译器不知道的,jvm虚拟机都知道。至于虚拟机为什么知道,参考下面:

image-20250213220136387

2. 区分几个概念

首先区分”引用“,”引用变量“,”父类引用“这三个词的概念。
引用:表示一个指针指向某个对象,相当于仅仅声明,并没有实例化这个指针。
引用变量:将这个指针实例化,用于指向对象在内存中的地址,其本身不占据独立的内存空间,和指向的变量共用内存空间。
父类引用:表示一个父类类型的引用,即这个引用类型是父类类型。
和中文里面”引用“意思不同,中文意思是在文章或讲话中直接使用别人的言论或资料。

posted @ 2025-03-06 16:16  JSESSIONID  阅读(9)  评论(0)    收藏  举报