在java中可以基于访问重载方法吗?

在java中可以基于访问重载方法吗?,java,methods,Java,Methods,例如,一个类有公共do、打包do、受保护do和私有do。如果类的一个实例调用do,它将得到私有的,如果子类调用它,那么它将得到保护,如果同一个包调用它,那么它将得到打包,如果其他任何东西调用它,它将得到公共的 否。这是一个包含其标识的元素(正如您不能重载方法的名称或返回类型)。只能重载传递给方法的变量 如果试图将超级方法为私有的方法公开,则会出现编译器错误,并且程序无法运行。否。这是一个包含其标识的元素(正如不能重载方法的名称或返回类型一样)。只能重载传递给方法的变量 class A {

例如,一个类有公共do、打包do、受保护do和私有do。如果类的一个实例调用do,它将得到私有的,如果子类调用它,那么它将得到保护,如果同一个包调用它,那么它将得到打包,如果其他任何东西调用它,它将得到公共的

否。这是一个包含其标识的元素(正如您不能重载方法的名称或返回类型)。只能重载传递给方法的变量


如果试图将超级方法为私有的方法公开,则会出现编译器错误,并且程序无法运行。

否。这是一个包含其标识的元素(正如不能重载方法的名称或返回类型一样)。只能重载传递给方法的变量

class A
{
    public Object do() { ... }
    protected Object do() { ... }
    Object do() { ... }
    private Object do() { ... }
}
如果您试图将一个超级方法为私有的方法公开,您将得到一个编译器错误,并且您的程序将无法运行

class A
{
    public Object do() { ... }
    protected Object do() { ... }
    Object do() { ... }
    private Object do() { ... }
}
不可以。无论是否使用子类,都不会编译此文件。我们也不应该期望如此。编译器如何知道调用哪个方法?这是不可能的

为了让它更清楚一点,一个更独特的重载——返回除
对象
以外的其他类型的重载甚至不是一个可接受的重载,因为编译器仍然无法确定要调用哪个方法。更弱形式的重载甚至更不可接受

不可以。无论是否使用子类,都不会编译此文件。我们也不应该期望如此。编译器如何知道调用哪个方法?这是不可能的

为了让它更清楚一点,一个更独特的重载——返回除
对象
以外的其他类型的重载甚至不是一个可接受的重载,因为编译器仍然无法确定要调用哪个方法。更弱形式的过载甚至更不可接受。

声明是编译时错误 具有覆盖等价的两种方法 类中的签名(定义如下)。 两个方法具有相同的签名,如果 它们有相同的名称和参数 类型

(从)

声明是编译时错误 具有覆盖等价的两种方法 类中的签名(定义如下)。 两个方法具有相同的签名,如果 它们有相同的名称和参数 类型


(From)

否,因为这些方法都具有相同的:


编译器只能根据方法的签名来区分它们。

否,因为这些方法都具有相同的:

编译器只能根据方法的签名来区分它们