【发布时间】:2017-12-21 08:30:55
【问题描述】:
考虑下面这段代码
public class SuperClass
{
//label 1
void function(int a)
{
System.out.println(a);
}
}
public class SubClass extends SuperClass
{
//label 2
void function(int a)
{
a++;
System.out.println(a);
}
//label 3
void function(float a)
{
System.out.println(a);
}
}
据我所知,标签 2 是函数覆盖的一个示例,因为在子类中重写了超类方法并使用自己的实现,而 标签 3 是函数重载的形式,因为参数不同而函数名相同。
我的问题是,如果标签 3 实际上是函数重载,它重载了哪个函数?标签 1 还是标签 2?
我的理论是标签 3 重载了标签 2,因为它们属于同一类。
我遇到过这些链接 -
Does overloading work with Inheritance?
Different ways of Method Overloading in Java
虽然他们提供了有用的信息,但他们并没有真正回答我的问题。
这只是我在学习 Java 中的多态性时遇到的一个概念性问题。任何帮助将不胜感激。
【问题讨论】:
标签: java inheritance polymorphism overloading overriding