java实现多态的两种方法 什么是多态?java中如何实现多态?
多态性分为编译时多态性和运行时多态性。
1. 编译时多态性,其实是方法重载,函数名相同,但签名不一样。值得注意的是,签名不包括方法的返回值。换句话说,这两个方法的函数名和输入参数是相同的,但返回值不同。编译器返回错误。
2. 运行时多态性实际上与继承和接口实现有关。子类可以重写父类的非最终、非静态、非私有方法或实现接口方法。JVM如何知道要调用哪个子类实例的对应方法?这就是你问的问题。在Java中,对象在JVM中有描述元数据。对象头存储当前实例的类型信息。在调用时,JVM可以根据这个类型准确地找出要使用的子类方法。
什么是多态?java中如何实现多态?
是的,这就是多态性。接口实现的多态性意味着接口userservice负责定义方法的名称、参数列表和返回值,而不管其具体实现如何。调用方userblh不需要知道谁实现了finduser和saveOrUpdate方法。它只需要知道userservice指针指向的对象已经实现了这两个方法,所以调用方userblh只调用它们。似乎您可能不知道如何在实现层(语言编译技术)中实现它。具体来说,1。方法实际上是一段可执行代码。接口userservice实际上定义了一个数据结构(实际上,它是一个虚拟函数表),但没有定义方法本身(也就是说,接口没有定义可执行代码块)。2接口userservice的子类userserviceinpl需要在构造函数的表中填充一些内容,这是子类userserviceinpl定义的可执行代码块的入口地址。三。当调用方userblh调用finduser方法时,它通过查找虚拟函数表来找到finduser方法的地址并调用它。给出一个图来帮助从技术角度解释如何实现多态性。(假设另一个类B也实现了接口userservice)
java实现多态的两种方法 java多态简单例子 java多态的例子
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。