java中为什么接口中的属性和方法都默认为public?
2014-08-24 14:13
253 查看
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
答: 如上所述,马克-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
相关文章推荐
- 【java关键字-Interface】为什么接口中的属性和方法都默认为public
- java中接口的属性、方法的默认修饰符和类的属性、访问修饰符的区别
- java接口的方法默认都是public abstract类型
- java中接口的方法为什么必须是public
- java 重写接口中的方法,为什么必须在前加public呢?
- java中接口的属性、方法的默认修饰符和类的属性、访问修饰符的区别
- Java接口中属性和方法的默认修饰符
- java中为什么接口中的属性都默认为static和final?
- 类的默认属性与接口的默认方法
- 《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法
- Java8新特性——接口的默认方法和类方法
- Java接口中的成员变量为什么必须声明为public static final?
- 转载: java的接口、类、属性、方法各有哪些修饰符
- 【封装】java中为什么要将属性进行私有化,又使用set和get方法来设置和获取属性呢?
- java的接口、类、属性、方法各有哪些修饰符
- Java8接口中的默认方法
- Java8接口的默认方法
- java的接口、类、属性、方法各有哪些修饰符
- Java的接口、类、属性、方法各有哪些修饰符
- java8新特性 (λ、stream 与 默认接口方法)