温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java Protected类成员访问权限

发布时间:2025-07-01 11:36:07 来源:亿速云 阅读:105 作者:小樊 栏目:编程语言

在Java中,protected是一种访问修饰符,它可以用来修饰类的成员(包括变量、方法和内部类)。当一个类的成员被声明为protected时,它的访问权限受到以下限制:

  1. 同一个包内:如果其他类与这个protected成员所在的类位于同一个包内,那么这些类可以直接访问这个protected成员。

  2. 不同包内:如果其他类与这个protected成员所在的类位于不同的包内,那么只有当这些类是该protected成员所在类的子类时,才能访问这个protected成员。这里的子类可以是直接继承或者间接继承。

需要注意的是,protected访问修饰符不允许跨包访问非子类的其他类。

下面是一个简单的例子来说明protected的访问权限:

// 文件名:ProtectedExample.java
package com.example;

public class ProtectedExample {
    protected int protectedVar = 10;
    protected void protectedMethod() {
        System.out.println("This is a protected method.");
    }
}

// 文件名:SamePackageClass.java
package com.example;

public class SamePackageClass {
    public void accessProtectedMembers() {
        ProtectedExample example = new ProtectedExample();
        System.out.println(example.protectedVar); // 可以直接访问
        example.protectedMethod(); // 可以直接调用
    }
}

// 文件名:DifferentPackageSubclass.java
package com.other;

import com.example.ProtectedExample;

public class DifferentPackageSubclass extends ProtectedExample {
    public void accessProtectedMembers() {
        System.out.println(protectedVar); // 可以直接访问,因为它是子类
        protectedMethod(); // 可以直接调用,因为它是子类
    }
}

// 文件名:DifferentPackageNonSubclass.java
package com.other;

import com.example.ProtectedExample;

public class DifferentPackageNonSubclass {
    public void accessProtectedMembers() {
        ProtectedExample example = new ProtectedExample();
        // System.out.println(example.protectedVar); // 编译错误,无法访问
        // example.protectedMethod(); // 编译错误,无法访问
    }
}

在这个例子中,ProtectedExample类有两个protected成员:一个变量protectedVar和一个方法protectedMethodSamePackageClass类与ProtectedExample类位于同一个包内,所以可以直接访问这些protected成员。DifferentPackageSubclass类是ProtectedExample类的子类,虽然它位于不同的包内,但仍然可以访问这些protected成员。而DifferentPackageNonSubclass类既不在同一个包内,也不是ProtectedExample类的子类,所以无法访问这些protected成员。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI