为什么要用到多态(java)

不是多态的程序,但有继承和重写:classPerson{publicvoidSayHello(){System.out.println("父类");}}classStud... 不是多态的程序,但有继承和重写:

class Person {
public void SayHello() {
System.out.println("父类");
}
}

class Student extends Person {
public void SayHello() {
System.out.println("学生类");
}
}

class Teacher extends Person {
public void SayHello() {
System.out.println("教师类");
}
}

class Worker extends Person {
public void SayHello() {
System.out.println("工人类");
}
}

public class School {
public static void main(String[] args) {
Student s = new Student();
Teacher t = new Teacher();
Worker w = new Worker();
s.SayHello();
t.SayHello();
w.SayHello();
}
}

多态程序:

class Person {
public void SayHello() {
System.out.println("父类");
}
}

class Student extends Person {
public void SayHello() {
System.out.println("学生类");
}
}

class Teacher extends Person {
public void SayHello() {
System.out.println("教师类");
}
}

class Worker extends Person {
public void SayHello() {
System.out.println("工人类");
}
}

public class School {
public static void main(String[] args) {
Person s = new Student();
Person t = new Teacher();
Person w = new Worker();
s.SayHello();
t.SayHello();
w.SayHello();
}
}

这2个代码修改起来差不多,代码量基本一致。那为什么还要用到多态?我初学者,请高手帮帮忙。
2个程序不同的写法在main方法
展开
 我来答
百度网友ac79ce96b
2011-10-13
知道答主
回答量:47
采纳率:0%
帮助的人:25.1万
展开全部
多态是父类变量引用子类的实例对象,解决了函数同名的问题。比如子类重写(就是覆盖)父类的方法,当用父类变量引用子类的实例对象时,调用同一方法,但是会得到不同的结果。如果你的某一个操作具有不同的行为动作,就可以使用多态,这样将能避免在同一个方法中使用大量if()else()语句进行判断,而且大大的增强的程序的健壮性 。当你开发大型项目时,就知道多态的用处了。
txtdown99
2011-10-17 · TA获得超过1223个赞
知道小有建树答主
回答量:421
采纳率:100%
帮助的人:153万
展开全部
比如:

public class School {
public static void main(String[] args) {
sayHello(new Student());
sayHello(new Teacher());
sayHello(new Worker());
}
public static void sayHello(Person s){
s.SayHello();
}
}
这样,你就可以看出多态的魅力了:
同一个方法,传入不同的对象,执行不同对象的相应方法。假如你要普通方法写一下看看?

补充:就比方说,一个领导安排任务呢,他肯定会说所有的程序员今天晚上加班。而不是说:X张三,王五,赵四。。。。加班,对吧。多态就是这样的作用,便于集中管理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淮下布衣
2011-10-13
知道答主
回答量:16
采纳率:0%
帮助的人:10.8万
展开全部
多态的引入使你在创建对象的时候不用关心对象的具体类型。例如创建s、t、w时,没有引入多态时分别用了Student Teacher Worker三个类,而在后面的例子中只用到了他们共同的父类Person,提高了代码复用性。这个例子反映了对象的多态性,是多态性的一个重要特点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有响应m2
2011-10-13 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3491万
展开全部
4楼说的正确啊 
不过在补充点 就是你列子2个所有的子类都可以用父类的引用来操作 如果你的对象很多的话(其实复杂的程序你根本就不知道具体要创造出多少对象)你不能只用单一的自己定义的引用去管理 这个时候需要容器来管理(list map 数组什么的) 这个时候用一个父类的容器就能管理所有子类的对象~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tingdedongni
2011-10-13 · TA获得超过982个赞
知道答主
回答量:35
采纳率:0%
帮助的人:49.1万
展开全部
比如,你的3个子类我只要运行一个,你可以将要运行的子类名称写在一个配置文件中,然后运用反射机制来构建出那个子类的一个对象,那样当你想换一个子类运行时,你就可以去配置文件中把名字改一下,源程序连main()方法都不需要改变,就可以正常运行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式