黑马程序员技术交流社区

标题: 张老师说尽量面相父类或接口编程,为什么? [打印本页]

作者: M单色调    时间: 2014-8-4 16:17
标题: 张老师说尽量面相父类或接口编程,为什么?
子类继承父类,子类实现接口,还可以重载和重写,子类的功能不是更强大吗?为什么还要面相父类或者接口?菜鸟,求解释!
作者: huoshao008    时间: 2014-8-4 16:25
子类不去继承父类,他怎么拥有使用父类的各种方法,也无法去补充父类的各种功能,.子类不去实现接口,他怎么去重写接口内的抽象方法以实现接口的扩展功能.
一个类不去继承父类,实现接口那他只是个普通类,不是子类.
作者: 江苏孙浩    时间: 2014-8-4 17:45
就是希望编写的代码能够应用于更多类型的对象吧
作者: 柳超    时间: 2014-8-4 17:49
子类继承父类,子类实现接口,还可以重载和重写,子类的功能不是更强大吗?为什么还要面相父类或者接口?
个人觉得父类或者接口的好处了这个就是,用父类或者接口你的程序的扩展性就会增加,而不会説如果你需要再写一个有类似的子类还要从头写,只需要把共性的内容封装继承过来就好了!
作者: alvinbx    时间: 2014-8-4 18:02
因为可扩展性更强啊:victory:
作者: M单色调    时间: 2014-8-4 19:00
huoshao008 发表于 2014-8-4 16:25
子类不去继承父类,他怎么拥有使用父类的各种方法,也无法去补充父类的各种功能,.子类不去实现接口,他怎么去 ...

那跟直接子类对象化有什么关系呢?
作者: M单色调    时间: 2014-8-4 19:14
alvinbx 发表于 2014-8-4 18:02
因为可扩展性更强啊

麻烦说具体点,最好能给个例子!谢谢了!
作者: M单色调    时间: 2014-8-4 19:15
柳超 发表于 2014-8-4 17:49
子类继承父类,子类实现接口,还可以重载和重写,子类的功能不是更强大吗?为什么还要面相父类或者接口?
...

觉得还是跟把子类直接对象化没关系。。。
作者: M单色调    时间: 2014-8-4 19:20
江苏孙浩 发表于 2014-8-4 17:45
就是希望编写的代码能够应用于更多类型的对象吧

开始我也这样觉得,比如说将对象装到集合的时候,子类,孙子类都能用到泛型。但是仅有这点也不至于非要面相父类和接口啊!
作者: 柳超    时间: 2014-8-4 20:13
List allList = new ArrayList();Collections.sort(allList);合法
ArraryList allList = new ArrayList())?Collections.sort(allList搜索);不合法
  你是这个意思 吗?
作者: li963309584    时间: 2014-8-4 21:21
比方说你要做一个web项目实现添加用户的功能,你在接口里有addUser方法,你要把这个用户存到数据库,你可以用jdbc,也可以用hibernate,这时候就可以把业务逻辑与实现的方法分离开。想用jdbc实现就用jdbc,如果后期改为hibernate,直接修改实现类就行了,便于代码分离。这个你明白吗
作者: justin1258    时间: 2014-8-4 21:27
面向接口编程或是面向抽象编程是设计模式里很重要的原则。因为接口或者是抽象的,抽象的东西比较稳定,而具体实现是变化相对剧烈的。面向接口编程的原则是为了让软件尽可能应对变化。
作者: es2379649    时间: 2014-8-4 22:07
面向父类的话,父类的引用可以指向子类对象。那么同一个引用可以指向多种子类对象。这样的话程序的拓展性很好。
作者: LFW    时间: 2014-8-4 22:37
为什么要有PCI接口?因为想要降低主板和网卡声卡的耦合性。不管你是什么厂商的网卡,只要能符合我的接口,你就能被我所用,我要换网卡只需要一插一拔就OK了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2