Employee e = new Manager()

jacksonlei 2007-11-02 04:34:11
这个在JAVA的多态性中是怎么实现的?希望各位高人赐教!最好有个例子加以说明!不胜感激!!!!
...全文
424 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yy04051419 2007-11-09
  • 打赏
  • 举报
回复
应该是一个“is-a”的问题吧
Manager 是 Employee 的一员
jacksonlei 2007-11-05
  • 打赏
  • 举报
回复
谢谢各位热心朋友!!
非常受用,
小弟正在努力学习!!
tuoxie007 2007-11-04
  • 打赏
  • 举报
回复
多态也体现在方法的重载上
例如:
public class man {
eat(){
System.out.println("eat");
}
eat(String str){
System.out.println("eat str");
}
}
方法eat(String str)对方法eat()进行了重载
man的引用可以同时调用两个方法 分别执行不同的功能
王启军 2007-11-03
  • 打赏
  • 举报
回复
Employee e = new Manager()
这个意思是说
Manager是Employee 的子类,当你new的时候new的是子类,接受的是父类

普通点说就是经理是雇员的特殊形式,经理拥有雇员的一切权限,多态就是说一个事务有很多形态
dracularking 2007-11-03
  • 打赏
  • 举报
回复
mark
cl55 2007-11-03
  • 打赏
  • 举报
回复
各位误会了吧,楼主问的是多态是怎么实现的。 vtable!
sharpyuce 2007-11-03
  • 打赏
  • 举报
回复
没人答的,俺来答,谁叫俺蠢呢!

JAVA中的多态,说起来广的很啊,说主要的吧:

extends 出现的多态
一父类有多个子类,并且多个子类中都重写了父类中的一个方法,当以父类为引用,子类为对象时,调用这个方法它就是多态的一种实现:

package alltest;

class AA{
public void m1(){

}
}

class BB extends AA{

@Override
public void m1() {
System.out.println("I am B.m1()");
}
}

class CC extends AA{

@Override
public void m1() {
System.out.println("I am C.m1()");
}

}

public class ExtendsTest{
public static void show(AA a){
a.m1();
}

public static void main(String[] args){
AA b = new BB();
AA c = new CC();
show(b);
show(c);
}
}

OutPut:
I am B.m1()
I am C.m1()
调用a.m1(),其实是调用实际对象的的m1()方法,即运行时对象的方法


2:implements interface

package alltest;

interface AA{
public void m1();
}

class BB implements AA{
public void m1() {
System.out.println("I am B.m1()");
}
}

class CC implements AA{
public void m1() {
System.out.println("I am C.m1()");
}

}

public class ExtendsTest{
public static void show(AA a){
a.m1();
}

public static void main(String[] args){
AA b = new BB();
AA c = new CC();
show(b);
show(c);
}
}

OutPut:
I am B.m1()
I am C.m1()


讲到interface又有好多特性,接口的回调,接口在类部内中的应用,接口来实现低耦合。。。and so on... 太多了 自己看书 再看书 写代码 就懂了 。。
liufh44 2007-11-02
  • 打赏
  • 举报
回复
再给例子也不如自己写,多写几次就知道了
lihaifeng0412 2007-11-02
  • 打赏
  • 举报
回复
还是先找本基础知识看看吧,
cl55 2007-11-02
  • 打赏
  • 举报
回复
去看看吧。
http://www.cs.usfca.edu/~parrt/course/652/lectures/polymorphism.html
z_lping 2007-11-02
  • 打赏
  • 举报
回复
读书吧。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧