抽象类实现一个接口为什么可以不用都实现接口中的方法

来源:互联网 发布:财务流水账软件 编辑:程序博客网 时间:2024/05/10 06:17

抽象类实现一个接口为什么可以不用都实现接口中的方法 [问题点数:60分,结帖人ZPH2254]

 收藏
楼主发表于: 2011-03-12 20:10:45
本帖最后由 ZPH2254 于 2011-03-12 20:12:52 编辑
代码如下:
public interface Human {
public void getColor();
public void talk();
public void getSex();
}

public abstract class AbstractBlackHuman implements Human {
public void getColor(){
System.out.println("-------------black");
}
public void talk(){
System.out.println("-------------hei");
}
}

请高手指教其中的原委!!!
  • <iframe id="iframeu1636200_0" src="http://pos.baidu.com/ocjm?rdid=1636200&amp;dc=2&amp;di=u1636200&amp;dri=0&amp;dis=0&amp;dai=2&amp;ps=1109x283&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1460511055041&amp;ti=%E6%8A%BD%E8%B1%A1%E7%B1%BB%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E6%8E%A5%E5%8F%A3%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E4%BB%A5%E4%B8%8D%E7%94%A8%E9%83%BD%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3%E4%B8%AD%E7%9A%84%E6%96%B9%E6%B3%95-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&amp;ari=1&amp;dbv=2&amp;drs=3&amp;pcs=1144x589&amp;pss=1144x3894&amp;cfv=0&amp;cpl=4&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1460511055&amp;ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F360089468&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DZ7whu7t1Fl6Nn8LFa4DbwY-ZGnm9gpLAxmzRTI6m1T5EBfHt84WtX3Xm6cRGUOMa%26wd%3D%26eqid%3Dffec6b990001e1c300000005570da11c&amp;ecd=1&amp;psr=1366x768&amp;par=1366x728&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=6&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1460511056&amp;qn=45cceae35574e732&amp;tt=1460511055020.855.1112.1113" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
     
  • <iframe id="iframeu1636201_0" src="http://pos.baidu.com/ocjm?rdid=1636201&amp;dc=2&amp;di=u1636201&amp;dri=0&amp;dis=0&amp;dai=3&amp;ps=1109x537&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1460511055041&amp;ti=%E6%8A%BD%E8%B1%A1%E7%B1%BB%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E6%8E%A5%E5%8F%A3%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E4%BB%A5%E4%B8%8D%E7%94%A8%E9%83%BD%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3%E4%B8%AD%E7%9A%84%E6%96%B9%E6%B3%95-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&amp;ari=1&amp;dbv=2&amp;drs=3&amp;pcs=1144x589&amp;pss=1144x3894&amp;cfv=0&amp;cpl=4&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1460511055&amp;ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F360089468&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DZ7whu7t1Fl6Nn8LFa4DbwY-ZGnm9gpLAxmzRTI6m1T5EBfHt84WtX3Xm6cRGUOMa%26wd%3D%26eqid%3Dffec6b990001e1c300000005570da11c&amp;ecd=1&amp;psr=1366x768&amp;par=1366x728&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=6&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1460511056&amp;qn=b79098835f2e2acf&amp;tt=1460511055020.856.1265.1266" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
     
  • <iframe id="iframeu1636204_0" src="http://pos.baidu.com/ocjm?rdid=1636204&amp;dc=2&amp;di=u1636204&amp;dri=0&amp;dis=0&amp;dai=4&amp;ps=1109x791&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1460511055041&amp;ti=%E6%8A%BD%E8%B1%A1%E7%B1%BB%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E6%8E%A5%E5%8F%A3%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E4%BB%A5%E4%B8%8D%E7%94%A8%E9%83%BD%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3%E4%B8%AD%E7%9A%84%E6%96%B9%E6%B3%95-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&amp;ari=1&amp;dbv=2&amp;drs=3&amp;pcs=1144x589&amp;pss=1144x3894&amp;cfv=0&amp;cpl=4&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1460511055&amp;ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F360089468&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DZ7whu7t1Fl6Nn8LFa4DbwY-ZGnm9gpLAxmzRTI6m1T5EBfHt84WtX3Xm6cRGUOMa%26wd%3D%26eqid%3Dffec6b990001e1c300000005570da11c&amp;ecd=1&amp;psr=1366x768&amp;par=1366x728&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=6&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1460511056&amp;qn=2b88ac57e06a6804&amp;tt=1460511055020.857.1278.1278" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    回复次数:9
    #1 得分:10回复于: 2011-03-12 20:22:02
    因为接口中所有方法都是abstract的,抽象类就是允许abstract方法存在的,为什么要实现?
    对我有用[1] 丢个板砖[0] 引用 | 举报 | 管理
    #2 得分:10回复于: 2011-03-12 20:24:54
    抽象类不能被实例化,所以它没必要实现所有的方法
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #3 得分:5回复于: 2011-03-12 20:30:31
    因为它们本来都不是完整的
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #4 得分:10回复于: 2011-03-12 20:45:38
    一个类若只实现了接口的部分方法,那这个类就一定是一个抽象类.

    反过来说,抽象类可以实现接口的部分方法或者一个方法也不实现.
    对我有用[1] 丢个板砖[0] 引用 | 举报 | 管理
    #5 得分:10回复于: 2011-03-12 21:38:21
    因为已经收抽象类了啊,当一个类实现一个接口时,如果不能完全实现就把这个类写作抽象类,就跟一个类如果不能实现他所继承的抽象类的全部抽象方法,那这个类也要命名为抽象类,其实接口从某种意义上来看就是抽象类的另一个化身
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #6 得分:10回复于: 2011-03-12 21:43:13
    大家说的很对。
    抽象类是不能被实例化的,所以没有要求实现所有的方法。但是没写出的方法还是隐式的存在的。
    当你在定义一个非abstract类继承那个类的话,就一定要全部实现了。
    对我有用[1] 丢个板砖[0] 引用 | 举报 | 管理
    #8 得分:0回复于: 2011-03-13 17:33:35
    很有用 我要记下
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #9 得分:5回复于: 2011-03-13 21:08:48
    抽象类不能被实例化 剩下的由继承它的类实现
    0 0
    原创粉丝点击