Java 方法名相同但类名不同

Java 方法名相同但类名不同,java,Java,这是一个示例程序 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 = n

这是一个示例程序

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中叫什么

这个概念在JAVA中叫什么

这不是一个概念,您在两个不相关的类中命名了相同的方法。如果一个类是另一个类的子类,那么根据方法签名,它应该是或

如果其中一个类是另一个类的子类,那么您可能已经实现了运行时多态性:

 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();
  }
}
现在我想问的是有两个不同的类,但它们有相同的方法名和参数,这个概念在Java中叫什么

这里没有“概念”,它们只是不相关的方法。要将它们关联起来,必须在两个类都实现的超类或接口中声明该方法。这将允许以多态方式调用方法,调用方只知道接口

现在我想问的是有两个不同的类,但是它们 有相同的方法名和参数,这个概念叫什么 在爪哇

这不是特别的OOPS或Java特性。任何独立(未通过某些层次结构连接)的类都可以具有相同的方法签名

据您所知,子类中与父类具有相同签名的方法称为重写方法。这是一个覆盖概念的OOPS方法


OOPS的另一个概念是方法重载,它位于具有相同名称但不同输入参数的方法的类中。

如果其中一个类是另一个类的子类,那么它将被重写或重载。

它不是java中的一个概念 如果一个类从它的超类继承了一个方法,那么只要该方法没有标记为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) {
        ...
    }
}

参考链接:

由于既不相互扩展,也不共享一个公共接口,因此没有概念可供使用。它们是简单的ol'POJOs。顺便说一句,它是Java,而不是Java——即使在演示代码中,遵循命名约定也是一个好主意,以大写字母开头的类名等等。我有两只宠物猫和狗。两个名字都一样!这是什么概念。这纯粹是设计的用户实现。您可以做最适合自己需要的事情。这被称为无概念概念:)如果两个类之间没有任何依赖关系,就不可能有任何这样的概念。这些只是简单的类。我想这里的概念是名称空间;-)所以为了关联这两个类,我必须从第一个类继承第二个类,对吗?这就是所谓的方法重写…但它们不是。如果是的话,那就是了;但事实并非如此。