Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!nx01.iad01.newshosting.com!newshosting.com!216.196.98.144.MISMATCH!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: Thu, 07 Apr 2011 23:48:56 -0500 Date: Thu, 07 Apr 2011 21:49:02 -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> In-Reply-To: <25875c94-9af2-4d28-976d-2050a738ae2e@n10g2000yqf.googlegroups.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <4sOdneh7k40lDgPQnZ2dnUVZ_vSdnZ2d@earthlink.com> Lines: 15 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 75.8.126.96 X-Trace: sv3-u9jabQtcyYg59VN9GE7n9hj1KR0mt2cUQUAeeb4owkllmfMF6s+GBIL0argRbDnFNQBbgdKA/TWbGhG!yohRxWnc1A5Daxf4D3wnjOMH3WdwcZbbreQglt3RtqXzJvOnNpinCPJqOO2BYKx5PQut1FF05r+F!Hlxynn3Sa6dT5PPiKLdzjO+AtX6YncBy5GpUUNhdYIM= 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: 1988 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:2978 On 4/7/2011 5:09 PM, kramer31 wrote: > Could someone please explain to me the rational behind only allowing > public methods on interfaces? In my mind, protection and interfaces > are two independent if perhaps somewhat related concepts. I think the original Java design underestimated the extreme usefulness of Java interfaces. At the time one of their uses, representing the public face of a package, was assumed to be the only possible use. I've wanted to use intra-package interfaces, containing only default access methods. There is an unpleasant choice between making something that should be an interface into an abstract class or having public methods that are supposed to only be used within one package. Patricia