﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-windblueos-文章分类-java基础</title><link>http://www.blogjava.net/windblueos/category/43976.html</link><description>行者的驿站，crazy duck 的程序人生</description><language>zh-cn</language><lastBuildDate>Thu, 18 Feb 2010 15:07:57 GMT</lastBuildDate><pubDate>Thu, 18 Feb 2010 15:07:57 GMT</pubDate><ttl>60</ttl><item><title>怎么区分方法是继承来的还是实现的接口中的方法</title><link>http://www.blogjava.net/windblueos/articles/313400.html</link><dc:creator>三千晴空</dc:creator><author>三千晴空</author><pubDate>Thu, 18 Feb 2010 10:12:00 GMT</pubDate><guid>http://www.blogjava.net/windblueos/articles/313400.html</guid><wfw:comment>http://www.blogjava.net/windblueos/comments/313400.html</wfw:comment><comments>http://www.blogjava.net/windblueos/articles/313400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/windblueos/comments/commentRss/313400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/windblueos/services/trackbacks/313400.html</trackback:ping><description><![CDATA[今日偶逛下javaeye论坛，发现一个有点费解的问题<br />
<h3><a href="http://duyiwuer.group.javaeye.com/group/topic/12546">怎么区分方法
是继承来的还是实现的接口中的方法</a></h3>
通俗地讲，就是一个类Test 继承一个抽象类 B 并实现一个接口C，抽象类B及接口C均有同名函数F(),<br />
<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;B&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;f();&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">默认是default&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">interface</span><span style="color: #000000;">&nbsp;C&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;f();&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">接口中的方法默认是public&nbsp;abstract&nbsp;方法&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Test&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;B{<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;args<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Test().f();<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;f()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">编译无问题，.继承抽象类的访问类型(当然还可以是public,protected)&nbsp;<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #008000;">public&nbsp;class&nbsp;Test&nbsp;extends&nbsp;B&nbsp;implements&nbsp;C{<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #008000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*//**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;args<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*//*</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Test().f();<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #008000;"><br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;f()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//编译错误，说明调用的是接口的方法，因其调用类型必须是public访问类型<br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub<br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #008000;"><br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #008000;"><br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #008000;">}<br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #008000;">*/</span></div>
所以很容易看得出调用的是接口而非抽象类的方法。<br />
<br />
<br />
看来有句话说的好，用java的有90%，能理解的只有10%。<br />
<br />
<img src ="http://www.blogjava.net/windblueos/aggbug/313400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/windblueos/" target="_blank">三千晴空</a> 2010-02-18 18:12 <a href="http://www.blogjava.net/windblueos/articles/313400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>