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