📜  Java 访问修饰符(1)

📅  最后修改于: 2023-12-03 15:16:01.865000             🧑  作者: Mango

Java 访问修饰符

在 Java 中,通过访问修饰符(access modifiers)来控制类、变量、方法等成员的访问级别。Java 中有四种访问修饰符,它们分别是:public、protected、default 和 private。

public

public 修饰的成员可以被任何类、任何包中的类以及其他 Java 程序访问。public 成员在程序中具有最高的可见性。

public class MyClass {
    public int publicMember;
	
	public void publicMethod() {
        // ...
    }
}
protected

protected 修饰的成员可以被当前类、当前类的子类以及当前类所在包中的其他类访问。protected 成员在程序中的可见性仅次于 public 成员。

public class MyClass {
    protected int protectedMember;
	
	protected void protectedMethod() {
        // ...
    }
}
default

当成员没有使用 public、protected 或 private 任何一个修饰符时,成员就是默认访问修饰符修饰的。default 修饰的成员能够被当前类和当前类所在包中的其他类访问。

public class MyClass {
    int defaultMember;
	
	void defaultMethod() {
        // ...
    }
}
private

private 修饰的成员只能够被当前类中的其他成员访问,无法被其他类访问。private 成员在程序中的可见性最低。

public class MyClass {
    private int privateMember;
	
	private void privateMethod() {
        // ...
    }
}

需要注意的是,虽然访问修饰符可以控制成员的访问级别,但是它并不能控制方法的覆盖。当一个方法被子类重写时,子类覆盖的方法的可见性不能小于父类的可见性。也就是说,如果父类方法使用的是 protected 访问修饰符修饰,那么子类覆盖时至少使用 protected 修饰符。如果使用的是 default 访问修饰符修饰则子类覆盖时必须使用 default 或更加高级的访问修饰符修饰。