这是一个示例程序
class abc {
void show() {
System.out.println("First Class");
}
}
class def {
void show() {
System.out.println("Second Class");
}
}
class demo {
public static void main(String args[]) {
abc a1 = new abc();
def a2 = new def();
a1.show();
a2.show();
}
}
现在我想问的是有两个不同的类,但它们具有相同的方法名称和相同的参数, 这个概念在JAVA中被称为什么?
答案 0 :(得分:4)
这个概念在JAVA中被称为什么?
这不是一个概念,你在两个不相关的类中命名了相同的方法。如果其中一个类是另一个类的子类,那么根据方法签名,它可能是overriding或overloading。
如果其中一个类是另一个类的子类,那么您将实现运行时多态性:
class abc {
void show() {
System.out.println("First Class");
}
}
// def extends from abc
class def extends abc {
// show() method was overridden here
void show() {
System.out.println("Second Class");
}
}
class demo {
public static void main(String args[]) {
// Use the reference type abc, object of type abc
abc a1 = new abc();
// Use the reference type abc, object of type def
abc a2 = new def();
// invokes the show() method of abc as the object is of abc
a1.show();
// invokes the show() method of def as the object is of def
a2.show();
}
}
答案 1 :(得分:2)
现在我想问的是,有两个不同的类,但它们具有相同的方法名称和相同的参数,在Java中调用这个概念是什么?
这里没有“概念” - 它们只是不相关的方法。要关联它们,该方法必须在两个类实现的超类或接口中声明。然后,这将允许以多态方式调用该方法,调用者只能知道该接口。
答案 2 :(得分:1)
现在我想问的是,除了它们之外,还有两个不同的类 有相同的方法名称和相同的参数,这个概念叫什么 在JAVA?
这不是特殊的OOPS或Java功能。任何独立(未通过某些层次结构连接)类都可以具有相同的方法签名。
根据您的了解,具有与父级相同签名的子类中的Method称为重写方法。这是一种覆盖概念的OOPS方法。
另一个OOPS概念是方法重载,它位于具有相同名称但输入参数不同的方法的类中。
答案 3 :(得分:0)
如果一个类从其超类继承一个方法,那么只要它没有标记为final,就有可能覆盖该方法。 例如
class Animal{
public void move(){
System.out.println("Animals can move");
}
}
class Dog extends Animal{
public void move(){
System.out.println("Dogs can walk and run");
}
}
public class TestDog{
public static void main(String args[]){
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
a.move();// runs the method in Animal class
b.move();//Runs the method in Dog class
}
}
类中的重载方法可以具有相同的名称,并且它们具有不同的参数列表
public class DataArtist {
...
public void draw(String s) {
...
}
public void draw(int i) {
...
}
public void draw(double f) {
...
}
public void draw(int i, double f) {
...
}
}
参考链接:http://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
答案 4 :(得分:-1)
如果其中一个类是另一个类的子类,那么它就会被覆盖或重载。