gpt4 book ai didi

java - 如何在以下上下文中调用其他包中同名的其他方法

转载 作者:行者123 更新时间:2023-12-01 08:10:46 25 4
gpt4 key购买 nike

中的 class B 中存在相同的方法时,如何从 Package.one 调用 class B 的方法包.twomain() 位于 Package.tworunAB 类 中。

Package
|-----one
| |---A.java (interface)
| |---B.java (implements A)
|-----two
|---B.java (implements A)
|---RunAB.java

//Package.one目录

package Package.one;

public interface A {
int area();
}

.

package Package.one;

public class B implements A {
public int width;
public int height;

public int area() {
System.out.println("i am form one");
return width*height;
}

public B(int a, int b) {
width = a;
height = b;
}
}

//Package.two目录

package Package.two;

import Package.one.*;

class B implements A {
public int width;
public int height;

public int area() {
System.out.println("i am form two");
return width*height;
}

public B(int a, int b) {
width = a;
height = b;
}
}

.

package Package.two;
import Package.one.*;


class RunAB {
public static void main(String args[]) {
B b = new B(10,12);
System.out.println("area is " + b.area());

}
}

///输出;

i am form two
area is 120

Java 如何知道它需要调用包 2 中的方法而不是包 1 中的方法? 接口(interface)A在这个调用过程(决策)中有什么作用吗?

最佳答案

使用完全限定名称:

public static void main(String args[]) {
Package.one.B b = new Package.one.B(10,12);
System.out.println("area is " + b.area());
}

解决你的第二个问题,运行以下代码:

public static void main(String args[]) {
pack.one.B bFromOne = new pack.one.B(10,12);
System.out.println(bFromOne.area());
pack.two.B bFromTwo = new pack.two.B(10,12);
System.out.println(bFromTwo.area());
}

如果该类通过另一个导入隐藏,则只需使用完全限定名称。

<小时/>

今后,请遵守 Java 命名约定,并让您的包以小写字母开头。

关于java - 如何在以下上下文中调用其他包中同名的其他方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com