在Java中重载和重写

Wei*_*ang 7 java computer-science overriding overloading

我知道如何重载方法,以及如何覆盖方法.但是,是否可以同时重载和覆盖方法?如果是,请举个例子.

Jua*_*tti 16

重载和重写是互补的,重载意味着相同的方法名称但不同的参数,并且重写意味着具有相同参数的子类中的相同方法名称.因此,不可能同时发生重载和覆盖,因为重载意味着不同的参数.

例子:

class A {
    public void doSth() { /// }
}

class B extends A {
    public void doSth() { /* method overriden */ }

    public void doSth(String b) { /* method overloaded */ }

}
Run Code Online (Sandbox Code Playgroud)

干杯!

  • 如果需要,可以覆盖重载方法.它尽可能接近它. (5认同)

nsf*_*n55 5

重载和重载只是抽象.重载只是意味着编译器将名称与参数的类型和数量结合使用来寻址要调用的函数.实际上,重载方法与命名不同的方法没什么不同,因为编译器用来查找函数的键是名称和参数列表的组合.

除了编译器可以使用super关键字解决覆盖函数之外,覆盖是一种相同的原则.

那么你可以覆盖重载函数吗?是的,因为重载方法在编译器眼中是完全不同的方法.