大家好,今天小编关注到一个比较有意思的话题,就是关于java语言多态的问题,于是小编就整理了3个相关介绍Java语言多态的解答,让我们一起看看吧。
什么是多态?j***a中如何实现多态?
1.编译时多态,其实就是方法重载,相同函数名,但签名不相同。值得注意的是签名不包括方法返回值,换句话说,两个方法,函数名和入参都相同,但返回值不同,编译器回报错的。
2.运行时多态,其实就和继承和接口实现相关了,子类可以覆盖父类的非final,非static,非private方法或者实现接口方法。运行时,动态绑定实例到父类或接口的引用,那jvm是怎么知道调用哪个子类的实例的对应方法的呢?这就是你问的问题了——J***a中对象在jvm内部都有描述元数据,对象头,对象头中存储了当前实例的类型信息,调用时jvm就根据这个type能精确找到具体是点用哪个子类的方法了。
为什么说j***a中接口是最能体现多态的概念?
多态本质概念应该是一种类型有多种表现形态,具体到程序中就是一个类型定义的同一个操作有多种逻辑实现。J***a中接口就是一种非常纯粹的一种类型,它只是定义这个类型能干什么,并没有定义怎么干,而只有实现它的具体实现类才定义了怎么干(具体逻辑)。这恰恰与多态高度相符。实际上c++里面的只有纯虚函数的类与J***a接口就非常相似了,区别在于J***a有接口这一个概念。
J***a接口在不为实现多态的情况下,声明接口除了便于阅读还有什么用呢?
J***a接口在不为实现多态的情况下,声明接口除了便于阅读,还有实现多重继承。在J***a编程中,接口是它的独门绝技,这也是有别于基它的语言。同时也区别自身类,而自己的类只能单独继承,而J***a接口可以多重。举个简单例子说明一下。
当然这只是一个简单的多重态例子,如有什么问题,请关注我,同时这个J***a例子,能帮到大家!谢谢!
到此,以上就是小编对于j***a语言多态的问题就介绍到这了,希望介绍关于j***a语言多态的3点解答对大家有用。