Hi! I was very surprised how the syntax for private interface method turned out. (I want to apologize in advance if this has been discussed before. I searched but didn't find anything. And I know it's a bike shed - still...)
I was going into a long explanation of what I thought were the reasons behind defining the syntax at it currently stands and that they were all very understandable. Then I would explain why I think the current design is still awkward. I soon realized that most people on the list will have had those thought long before me. So I cut them out and come straight to the point: The way the two axes[1] public / private and abstract / has-impl turned out is pretty erratic: interface FooBar { // public foo(); // public has-impl bar() { ... } // private has-impl foobar() { ... } foo(); default foo() { ... } private foobar() { ... } } If private abstract methods were ever added (Does this even make sense? Would be nice to have a private channel between interface and implementation.) the confusion would be complete. Now, if `default` were optional as well... :) so long ... Nicolai [1] https://thumbs.dreamstime.com/x/two-axes-15577060.jpg -- PGP Key: http://keys.gnupg.net/pks/lookup?op=vindex&search=0xCA3BAD2E9CCCD509 Web: http://codefx.org a blog about software development http://do-foss.de Free and Open Source Software for the City of Dortmund Twitter: https://twitter.com/nipafx