java中为什么接口中的属性和方法都默认为public?
来源:互联网 发布:大毛拉遇害 知乎 编辑:程序博客网 时间:2024/06/07 23:08
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
0 0
- java中为什么接口中的属性和方法都默认为public?
- 【java关键字-Interface】为什么接口中的属性和方法都默认为public
- java中为什么接口中的属性都默认为static和final?
- Java接口中的成员变量默认为(public、static、final)、方法为(public、abstract)
- Java接口中属性和方法的默认修饰符
- Java接口中的成员变量为什么必须声明为public static final?
- Java接口中的成员变量为什么必须声明为public static final?
- Java接口中的成员变量为什么必须声明为public static final?
- 为什么接口中的属性必须用public static final修饰?
- java 重写接口中的方法,为什么必须在前加public呢?
- java中接口的属性、方法的默认修饰符和类的属性、访问修饰符的区别
- java中接口的属性、方法的默认修饰符和类的属性、访问修饰符的区别
- Java接口中的变量和方法默认的类型<转>
- 接口中同一个方法不写public,为什么在实现类中一定要写public呢?
- java中getter 和 setter 方法有什么意义?为什么不用public代替GS?
- Java中public,private,protected,和默认的区别
- JAVA中public private protected和默认的区别
- 关于JAVA中为什么每个编译单元内都只能有一个public类
- java中接口和抽象类有什么区别,举例!
- 防止jquery重复执行动画
- Spring Clob,Blob存储
- 接口胜任作为和外部系统打交道的合同抽象类就不行?
- UVA10010
- java中为什么接口中的属性和方法都默认为public?
- Ubuntu安装MATLAB
- Server_virtual pc 2007闲谈;
- hdu2544最短路径dijkstra
- java中什么是内部类?它有什么用?如何使用?
- CF 372B Counting Rectangles is Fun [dp+数据维护]
- chrome与google搜索设置
- java中数组为空和数组长度为0的区别
- Service 两种启动方式