Java中继承类中的重载是否可能?

fykwrbwg  于 2023-09-29  发布在  Java
关注(0)|答案(3)|浏览(134)

Java中继承类中的重载是否可能?父类和子类包含相同的方法名称,但参数不同。这是超载吗?

class Parent {
    public void add(int a) {
        System.out.println("I am parent" + a);
    }
}

class Child extends Parent {
    public void add(long a) {
        System.out.println("I am child.");
    }
}
c86crjj0

c86crjj01#

是的。当扩展任何类时,在内部它意味着父类的所有可访问行为将在子类中呈现或继承。也就是说,在您例子中,相同的名字带不同的参数就是重载。

mum43rcc

mum43rcc2#

当然,在继承类中重载在Java中是可能的。Java编译器检测到add方法有多个实现。因此,根据该参数,Java编译器将确定必须执行哪个方法。

class Parent {
    public void add(int a) {
        System.out.println("I am parent " + a);
    }
}

class Child extends Parent {
    public void add(long a) {
        System.out.println("I am child.");
    }
}
class Demo{
    public static void main(String args[]){

    Child child = new Child();
    child.add(1); // prints "I am parent 1"
    child.add(1L); // prints "I am child."

    }
}
7kqas0il

7kqas0il3#

是的,在java中允许重载的概念,这意味着你可以用相同的名字和不同的参数声明不同的方法。在你的例子中,你是在扩展父类,这意味着父类的所有属性都可以在子类(child)中使用。
这是一个重载:

Child c = new Child(); 
c.add(1);//it will call the parent method
c.add(1L);//It will call the child method

相关问题