gpt4 book ai didi

当类具有默认访问权限时,Java 成员访问权限

转载 作者:行者123 更新时间:2023-11-30 06:06:31 25 4
gpt4 key购买 nike

假设我有一个声明为默认访问权限的类。如果类中的成员被声明为 protectedpublic,是否等同于声明为具有 default 访问权限的成员?

例如:

在 CarA.java 中:

class CarA { //class declared with default access
public int odometer;
protected void forward(int distance){...
}
protected static void tally(){...
}
}

在 CarB.java 中:

class CarB { //class declared with default access
int odometer;
void forward(int distance){...
}
static void tally(){...
}
}

CarACarB 等效吗?

我的理由是,由于该类未声明为 public,因此该类在其包外部不可访问,因此其成员也不应在其包外部访问。有人可以证实我的想法是正确的吗?

最佳答案

不,它们并不等同。在同一个包中定义它们:

public class CarC extends CarA { }

public class CarD extends CarB { }

并在不同的包中:

import your.package.CarC;
import your.package.CarD;
public class NewClass
{
public static void tryThis(CarC c, CarD d) {
int n1 = c.odometer; // legal
int n2 = d.odometer; // illegal
}
}

关于当类具有默认访问权限时,Java 成员访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43883655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com