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