⑴ java多态的实现主要体现在哪些方面
多态可分为:
1.编译多态:主要是体现在重载,系统在编译时就能确定调用重载函数的哪个版本。
2.运行多态:主要体现在OO设计的继承性上,子类的对象也是父类的对象,即上溯造型,所以子类对象可以作为父类对象使用,父类的对象变量可以指向子类对象。因此通过一个父类发出的方法调用可能执行的是方法在父类中的实现,也可能是某个子类中的实现,它是由运行时刻具体的对象类型决定的。
⑵ java中什么是多态性它具有什么优点
Java是面向对象的语言,多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,主要体现在继承和接口实现两方面,详见例子:
继承实现多态例如:
class A{
method(){
System.out.println("a");}
}
class B extends A{
method(){
System.out.println("b");}}
class test{
main(){
A test = new B();
test.method();//执行以后输出的是:b。解释就是:父类引用(A)指向子类对象(B),这个引用调用的是子类的方法,而不是父类A的方法;
}}
继承实现多态其实原理类似:
interface A{
method();}
class B implements A{
method(){
System.out.println();}}
class test{
main(){
A test = new B();
test.method();//此处便会使用java的多态,B实现了A,虽然=前面是A test,但实际上生成的确是B的对象,所以调用它的方法,同继承中的父类对象指向子类对象原理相同,只是此处为继承;
}}
多态的好处非常明显啊,有人总结:
1.可替换性。多态对已存在的代码具有可替换性。
2.可扩充性。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。
3.接口性。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
4.灵活性。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性。多态简化了对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。