Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail NNTP-Posting-Date: Fri, 08 Apr 2011 08:59:02 -0500 Date: Fri, 08 Apr 2011 06:59:10 -0700 From: Patricia Shanahan User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Why only public methods on interfaces? References: <25875c94-9af2-4d28-976d-2050a738ae2e@n10g2000yqf.googlegroups.com> <4sOdneh7k40lDgPQnZ2dnUVZ_vSdnZ2d@earthlink.com> <2011040801014026003-angrybaldguy@gmailcom> <5YSdnThYKPSwAgPQnZ2dnUVZ_gydnZ2d@earthlink.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Lines: 25 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 75.8.126.96 X-Trace: sv3-YwveMAN09t5JKVBoJ+rD4ri+hK01j7PlB1bETiRmNnEIx5rmO9EqmurAofP7G3HDvAgux21Lpfm3sh+!50Jvh8uYrtRGmo2ZDapIv6wx+kzhftzcSNJ3KwyNGA/tGmSfq8v4jqYRM2tJFhQdgTX1XEZcNrOR!gNaV8iztuz7E1aF2Zw/oQ+5H2MDu2s2EPHum6boe0S0= X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 2148 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:2992 On 4/8/2011 12:14 AM, Peter Duniho wrote: > On 4/7/11 10:37 PM, Patricia Shanahan wrote: >> [...] >>> As Stefan pointed out, interfaces themselves don't have to be public. >>> This is legal: >>> >>> package com.example; >>> >>> interface SomeInternalAbstraction { >>> public void flog(Horse horse); >>> } >>> >>> -o >>> >> >> Yes, but then the implementing methods do have to be public, which is >> undesirable if they should not be used outside the package. > > The implementing type doesn't have to be public either. How do you know that? Of course, implementing the interface does not require it to be public, but the class may also be part of the public face of the package. Patricia