Java 不同类中的方法重载

Java 不同类中的方法重载,java,inheritance,polymorphism,overloading,Java,Inheritance,Polymorphism,Overloading,是否可以在不同的类中执行方法重载 class Parent{ // Private method private void method1(){ System.out.println("In private method of Parent class"); } void method2(){ } void method3(){ } } class Child extends Parent{ void method

是否可以在不同的类中执行方法重载

class Parent{
    // Private method
    private void method1(){
        System.out.println("In private method of Parent class");
    }
    void method2(){
    }
    void method3(){
    }
}

class Child extends Parent{
    void method3(int i){
    }
}
要执行重载,类中必须有两个名称相同且签名不同的方法。但在继承中,它是如何工作的。 在继承中,在子类中创建非私有方法的副本是真的吗? 在本例中,是否执行重载?

表示具有相同名称但不同签名的方法,但不覆盖特定
类的等效方法。它是类的主题,与它的父或子无关。此外,如果父对象具有重载方法,则子对象可能具有也可能不具有相同的行为。此外,如果任何
接口
包含重载签名,那么您的类最终将拥有重载方法


请注意,您没有使用父对象的
method()
重载
method3(int i)
,在您的例子中,甚至更多的
子对象的方法与其父对象的方法无关。您只能重写父类的
非私有
非静态
方法,但不能重载它们,重载它们没有任何意义。

重写-在子类中重新定义方法,而不干扰签名。这也称为动态绑定,将在运行时根据传递的对象确定

重载-通过更改方法签名重新定义同一类中的方法。这也称为静态绑定,将在编译时决定


在这里,在您的特定示例中,我们不应该说method3()被重载,因为我们没有在同一个类中多次使用重新定义method3()。

否,对于方法重载,您必须具有相同的方法签名。否,重载发生在同一个类中@您正在谈论的drgPPoverriding@LaurentiuL. “哦,是的,你说得对,我把术语弄混了。”劳伦蒂尔。但是当我们执行继承时,我们继承了类中父类的非私有方法,因此如果我在子类中创建了一个名称相同但参数不同的方法,那么子类中将有两个名称相同的方法。因此可以执行重载。