目录
1.1 前言
默认修饰符就是什么修饰符都没写的情况,它的存在就像是空气,看不见却处处都在。
1.2 仅可在包中访问
这就可以简单地解释为什么在一个包中引入其他包并直接调用里面的类会报错。
package test1;
class test1{ // 这里已经使用了默认修饰符了
test1() { // 这是默认构造函数,同样使用了默认修饰符
}
}
package test2;
import test1.*;
public class test2{
public static void main(String[] args){
test1 t = new test1(); // 这里就已经错了,程序是运行不了的
}
}
运行结果:(报错)
The symbol could not be found
1.3 修饰外部类和接口
package test1;
class test1{ // 这里使用默认修饰符
test1() { //这里也使用了默认修饰符
}
}
interface A { // 这是一个接口,也使用默认修饰符
}
1.4 覆盖
被默认修饰符修饰的方法或变量不允许使用 private 修饰符覆盖,其他访问修饰符均可。
package test2;
class A {
void msg() {
System.out.print("A");
}
}
public class test2 extends A {
private msg() { // 这里错了,不能用 private 来覆盖
System.out.print("just try it");
}
public static void main(String[] args){
test2 t = new test2();
t.msg();
}
}
运行结果:(报错)
Cannot override
1.5 总结