马克社区吧 关注:458贴子:423
  • 0回复贴,共1

java中为什么接口中的属性和方法都默认为public?举例!

只看楼主收藏回复

4)为什么接口中的属性和方法都默认为public?Sun公司当初为什么要把java的接口设计发明成这样? 【新手可忽略不影响继续学习】
答:如上所述,马克-to-win:既然接口强于抽象类能胜任作为和外部系统打交道的合同。换句话说,一般来讲和外部系统打交道,自然考虑用“接口”。“外部”二字自然让我们做出如下结论:属性和方法都应默认为public。马克-to-win:举例假设方法或属性默认为protected,他的子类也可以为protected,既然不是public,就一定存在一定的情况,正常访问这些属性和方法会引起错误。(马上跟着一个例子)因为是和外部系统打交道,存在很大的未知性,马克-to-win:我并不知道未来外部别人怎么用我们的接口,所以尽量少给别人设置障碍(少添点堵),就设置权限为public,出于这种考虑,Sun公司一开始就规定,接口属性和方法默认就为public。
例1.6.1:
以下例子,假如A实现IA接口,IA接口里面有printIProtected,这个方法是protected。
package p1;
public class A {
protected int i;
protected void printIProtected() {
System.out.println("i=" + i);
}
}
package p2;
import p1.A;
public class Test extends A {
public static void main(String[] args) {
A a=new A();
。。。。。。。。。。。。。。。。。
详情请进:http://www.mark-to-win.com/JavaBeginner/JavaBeginner4_web.html#InterfaceIsPublic


IP属地:北京1楼2014-07-22 16:31回复