在公司中有Java开发项目经验的前辈们请进~~~ 本帖最后由 lizhi145 于 2010-04-09 10:21:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看情况了不过一般写成这样了就是为了多态的那当然就 Animal a = new Lion("雄狮"); 了要不代码写成这样就是多余 一般会在别的地方有类似下边的代码public void Action(Animal a){ a.eat();} 楼上的意思就是用Animal a = new Lion("");这种情况用得较多。可以看到楼上这么写的好处了把。因此会选择这种方法来处理。 多用“Animal a = new Lion("雄狮");”多态· 既然你使用了继承,说明你的需求里不光有 Lion 还有 Wolf 等,至少将来有添加的可能。如果直接 new 感觉没什么不同,但如果使用 facotry, 就应该是:Animal a = facotry.create(animalName); 真的要看情况呀。要多态时,会用Animal a = new Lion("雄狮"); 这个要具体根据项目来对待,不过一般情况下都会用Animal a = new Lion("雄狮");这也是为了以后扩展方便! 尽量用“Animal a = new Lion("雄狮");”这种语句。一是扩展起来方便;二是即便要调用子类中独有的方法可以强制类型转换为子类,如下:if(a instanceof Lion){ Lion l = (Lion)a; l.<子类中独有的方法>;} 一般将具有相同方法和属性的类抽提出来作为父类,在生产实践中子类继承父类多数是为了继承父类的属性和方法,很简单的例子:swing编程,线程(继承Thread),很少用到多态那样的定义。结论:前者用得少,后者用得多 ProcessBuilder环境变量~ jdk环境变量的问题 把一串16进制码转化为一张图片 一个问题 文件共享但不显示小手 JTable高手:为什么我实现了getColumnClass()后就不能增加一行了呢? 我想在单机上用JAVA开发CORBA的应用(中间件)? 如何给HttpSession加上HttpSessionListener?(在线加分) 在java中有没有十进制转六进制的函数? 难道没人能解决吗?望高手不吝赐教,我所能给的分都在这里了 用java将PAL格式的视频流转成NTSC格式的视频流 如果实现 jsp 滚屏显示 word 文档!
不过一般写成这样了就是为了多态的
那当然就 Animal a = new Lion("雄狮"); 了
要不代码写成这样就是多余
public void Action(Animal a){
a.eat();
}
如果直接 new 感觉没什么不同,但如果使用 facotry, 就应该是:
Animal a = facotry.create(animalName);
要多态时,会用Animal a = new Lion("雄狮");
Lion l = (Lion)a;
l.<子类中独有的方法>;
}
在生产实践中子类继承父类多数是为了继承父类的属性和方法,
很简单的例子:swing编程,线程(继承Thread),
很少用到多态那样的定义。结论:前者用得少,后者用得多