
java中的多态是为了解决java中的什么问题?
4个回答
展开全部
主要是应用继承这块儿的。举个例子 ,你创建了class Employee.然后创建了它的子类class Manager extends Employee.那么,一个Employee变量既可以引用一个Employee类对象,也可以一个Employee的子类对象(如Manager)。
Employee e;
e=new Employee();
e=new Manager();
这都是可行的,但是只能是子类对象当父类引用,不然是错的。就好比一个经理是一个雇员,而一个雇员不一定是个经理。
Employee e;
e=new Employee();
e=new Manager();
这都是可行的,但是只能是子类对象当父类引用,不然是错的。就好比一个经理是一个雇员,而一个雇员不一定是个经理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实多态是一种面向对象的设计思想,也就是只给接口,让你去实现(可以替换实现),就是设计和实现的分离,这个做法有利于软件的重用。
举个例子,你创建了一个动物的抽象类或接口,里面有一些接口方法,你造了一个动物园,然后有各种动物的奔跑、叫唤、吃食等动作作为方法,但你并没有实现它,在没有任何动物之前你只用知道如何把这些动物都圈到笼子里,就有动物园了。
然后,从别处给你运来了老虎、狮子、猴子、狗、猫这些动物,都是实现了你的奔跑、叫唤、吃食这些方法了,这些就是具体动物的实现部分,你把他们挂到你动物园上就行了。这就是多态。
以下是一些理论的描述,请参考:
多态给我们带来的好处,可以归纳为如下5点:
1. 可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2. 可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3. 接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。例如,假设超类Shape规定了
两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,可以完善或者覆盖这两个接口方法。
4. 灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5. 简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。但在Java中,除了final类和一定条件下的final方法外,所有方法都由JVM在运行期间进行动态绑定。
举个例子,你创建了一个动物的抽象类或接口,里面有一些接口方法,你造了一个动物园,然后有各种动物的奔跑、叫唤、吃食等动作作为方法,但你并没有实现它,在没有任何动物之前你只用知道如何把这些动物都圈到笼子里,就有动物园了。
然后,从别处给你运来了老虎、狮子、猴子、狗、猫这些动物,都是实现了你的奔跑、叫唤、吃食这些方法了,这些就是具体动物的实现部分,你把他们挂到你动物园上就行了。这就是多态。
以下是一些理论的描述,请参考:
多态给我们带来的好处,可以归纳为如下5点:
1. 可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2. 可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3. 接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。例如,假设超类Shape规定了
两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,可以完善或者覆盖这两个接口方法。
4. 灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5. 简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。但在Java中,除了final类和一定条件下的final方法外,所有方法都由JVM在运行期间进行动态绑定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现OOP,其实主要是为了实现多重继承。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解决你要写n个if else才能解决的问题
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询