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. “哦,是的,你说得对,我把术语弄混了。”劳伦蒂尔。但是当我们执行继承时,我们继承了类中父类的非私有方法,因此如果我在子类中创建了一个名称相同但参数不同的方法,那么子类中将有两个名称相同的方法。因此可以执行重载。