首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当类具有与导入的方法同名的方法时,import static不起作用

当类具有与导入的方法同名的方法时,import static 不起作用,这是因为 Java 编译器无法确定使用哪个方法。在这种情况下,您需要使用完全限定的方法名称来调用方法,以便编译器知道您要使用哪个方法。

例如,假设您有两个类,AB,它们都有一个名为 doSomething() 的方法。现在,您想使用 import static 来导入这两个方法,但是编译器无法确定哪个方法应该被调用。

代码语言:java
复制
class A {
    public static void doSomething() {
        System.out.println("A.doSomething()");
    }
}

class B {
    public static void doSomething() {
        System.out.println("B.doSomething()");
    }
}

为了解决这个问题,您可以使用完全限定的方法名称来调用方法。

代码语言:java
复制
public class Main {
    public static void main(String[] args) {
        A.doSomething();
        B.doSomething();
    }
}

这将输出:

代码语言:txt
复制
A.doSomething()
B.doSomething()

总之,当类具有与导入的方法同名的方法时,import static 不起作用。您需要使用完全限定的方法名称来调用方法,以便编译器知道您要使用哪个方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

方法全部都是 static 关键字修饰 ,它构造方法最好作为 private 私有化,理由是方法全是 static, 不知道的人会去new对象去调用,需要调用构造方法。 但 static

方法全部都是 static 关键字修饰 ,它构造方法最好作为 private 私有化,理由是方法全是 static, 不知道的人会去new对象去调用,需要调用构造方法。...但 static方法直接用名调用就行!...可以通过名调用。     其实它本身也可以通过对象名调用。     推荐使用名调用。     静态修饰内容一般我们称其为:相关成员。...B:内存中位置不同     静态变量存储于方法静态区。     成员变量存储于堆内存。   C:内存出现时间不同     静态变量随着加载而加载,随着消失而消失。     ...static 被jvm调用,不用创建对象,直接名访问。     void 被jvm调用,不需要给jvm返回值。     main 是一个通用名称,虽然不是关键字,但是被jvm识别。

1.1K20

包、继承以及 LeetCode 27、28题

用命令行编译,用 javac -d . xxx.java 会生成包层次相同目录结构。 位于包中,在文件系统中也必须有包命层次相同目录结构。推荐用上述方法编译。...1.3 import static import static 用于导入指定某个静态成员变量、方法或全部静态成员变量、方法。...Object 是所有,要么是其直接父,要么是其间接 父。 2.2 重写父方法 子类包含父类同名方法现象被称为方法重写( Override),也被称为方法覆盖。...如果子类中定义了一个private方法具有相同方法名、相同形参列表、相同返回值类型方法,依然不是重写,只是在子类中重新定义了一个新方法。 父方法和子类方法也可以发生重载!...和 this 一样不能在静态方法中使用。 子类和父拥有同名变量,子类方法里访问默认是子类定义变量,父变量需要用 super 前缀来访问。

46910
  • 关于JAVA你必须知道那些事(二):封装

    构造方法调用必须配合new关键字,不能被对象单独调用。注意,构造方法必须同名且没有返回值。 方法名中参数列表可有可无,但是只能在对象实例化时候被调用。...没有指定构造方法,系统会自动添加无参构造方法有指定构造方法,无论是有参、无参构造方法,系统都不会自动添加无参构造方法,一个中可以有多个构造方法。...还有就是包效率问题,建议采用import包名.方式进行包导入,这样可以提高加载效率 import net.oschina.Test.*; // 加载包下所有import net.oschina.Test.Java...; // 加载指定包下指定 注意一下,加载顺序跟import导入语句位置无关:指定具体包优先级大于通配符。...当代码块出现在方法时候,叫做普通代码块,普通代码块和一般语句执行顺序是一样:从上到下,顺序执行,先出现,,先执行。 当代码块直接在中定义,成员方法,属性并列,我们此时称之为构造代码块。

    49910

    【JavaSE专栏22】一文吃透Java包机制

    需要注意是,使用通配符导入整个包可能会导致名称冲突问题,特别是多个包中存在相同名。 因此,同学们在导入时要小心,并确保没有名冲突。...请注意,虽然可以使用 import 语句来导入其他包中,但如果引用当前包中具有相同名称,仍然需要使用完全限定名来区分它们。...默认(不使用任何修饰符):默认访问修饰符,没有指定任何访问修饰符,默认情况下、接口、方法和变量具有默认访问权限。默认访问权限限定了只能在同一包中进行访问,不同包中无法访问。...尝试编译此代码,编译器将无法确定使用哪个 MyClass ,因为它们具有相同名称,这将导致编译错误和命名冲突。 要解决这个问题,可以通过显式指定完整包路径或者使用不同名来避免命名冲突。...Java 在包命名上遵循了一定规范,但仍可能存在包名称冲突问题,不同包中存在相同名,就会发生包名称冲突。

    49520

    java中import作用详解

    importpackage机制相关,这里先从package入手,再讲述import以及static import作用。...相同,全世界 Java 数量,恐怕比日本人还多,如果类别不使用package名称,那在用到相同名不同类, 就会产生极大困扰。所以package这种方式让极大降低了之间命名冲突。...导入或接口简名(simple name)具有编译单元作用域。这表示该类型简名可以在导入语句所在编译单元任何地方使用.这并不意味着你可以使用该类型所有成员简名,而只能使用类型自身简名。...现在用static import方式: //**精准导入** //直接导入具体静态变量、常量、方法方法,注意导入方法直接写方法名不需要括号。...例如在进行Static Import时候,出现了“两个导入语句导入同名静态成员”情况。

    1K20

    java和对象(上.2)

    前面我们已经介绍了属性和方法,那么我们在这里开始谈一下,构造器 成员之三:构造器(构造方法) 构造器特征 它具有相同名称 它不声明返回值类型。...形参与成员变量同名, 如果在方法内或构造器内需要 使用成员变量,必须添加this来 表明该变量是成员变量 3.使用this访问属性和方法, 如果在本类中未找到,会从父 中查找 下面是代码操练...在源文件中使用import显式导入指定包下或接口 2. 声明在包声明和声明之间。 3. 如果需要导入多个或接口,那么就并列显式多个import语句即可 4....如果在代码中使用不同包下同名。那么就需要使用方式指明调用 是哪个。 7. 如果已经导入java.a包下。...那么如果需要使用a包子包下的话,仍然需要导入。 8. import static组合使用:调用指定或接口下静态属性或方法

    25850

    Groovy 语言结构-包名,imports导入知识学习

    示例如下: import static Boolean.FALSE println(FALSE) //输出false 这类似于Java静态导入功能,但比Java更动态,因为它允许您定义导入方法同名方法...)) //输出 1024 } } 如果具有相同类型,则导入优先。...在静态导入下,我们添加*号后常规星形导入非常相似。区别在于它将从给定导入所有静态方法。 例如,假设我们需要为应用程序计算正弦和余弦。...java.lang.Path具有名为sin和cos静态方法,符合我们需要。...借助静态星形导入,示例如下: import static java.lang.Math.* //我中没有sin 和cos方法,以下方法通过import static 导入Math静态方法 println

    1.6K20

    Java包机制以及importstatic import用法详解(看这篇就够了)

    三分钟搞明白Java包机制以及importstatic import用法 概述 包机制是 Java 中管理重要手段。包对于,相当于文件夹对于文件作用。...同一个包中名字是不同,不同包中名字是可以相同同时调用两个不同包中相同类名,应该加上包名加以区别。因此,包可以避免名字冲突。...和com.a.b.c三者没有包含关系,是三个完全独立import 如果我们要使用其他包,需要使用 import 导入,从而可以在本类中直接通过名来调用,否则就需要书写完整包名和名。...如果导入两个同名,只能用包名+名来显示调用相关。...static import 静态导入static import)是在 JDK1.5 新增功能,其作用是用于导入指定静态属性和静态方法,这样我们可以直接使用静态属性和静态方法

    1.8K40

    Java基础:六、包 (1)

    = new ArrayList(); } } 要想导入其中所有的,只需要使用import java.util.* 之所以要导入,就是要提供一个管理名字空间机制。...所有成员名称都是彼此隔离。A方法f()B具有相同特征标记(参数列表)方法f()不会彼此冲突。而名称防止冲突,是通过Java对名称空间完全控制并为每个创建唯一标识符组合。...编写一个Java源代码文件,此文件通常被称为编译单元。...如果在编译单元之中还有额外化,那么在包之外世界是无法看见这些,这是因为它们不是public,而且它们主要用来为主public提供支持 代码组织 编译一个.java文件,在.java文件中每个都会有一个输出文件...解释器就在这些目录中查找你想要创建名称相关.class文件。 冲突 如果将两个含有相同名库以 * 形式同时导入

    56110

    python 入门学习—模块导入三种方式及中文凝视

    仅仅要导入了一个模块,就能够引用它不论什么公共函数、或属性。模块能够通过这样方法来使用其他模块功能。 用import语句导入模块。...就在当前名称空间(namespace)建立了一个到该模块引用.这样引用必须使用全称,也就是说,使用在被导入模块中定义函数,必须包括模块名字。...import funcname  from modname import fa, fb, fc  或者  from modname import第1种方法差别:funcname 被直接导入到本地名字空间去了...modname没有被定义,所以modname.funcname这样方式不起作用。而且。假设funcname假设已经被定义,它会被新版本号(该导入模块中版本号)所替代。...而不想要其他,使用 from module import  3)假设模块包括属性和方法某个模块同名,你必须使用import module来避免名字冲突  4)尽量少用 from module

    37720

    Java学习笔记-全栈-Java基础-06-面向对象中重点

    静态初始化块 在中使用static修饰一个代码块,会在创建时候执行。...静态导入 用于导入指定静态属性 Import static java.lang.Math.*; //导入Math中所有静态属性 Import static java.lang.Math.PI; //...导入静态属性PI 4.重写重载方法三个要求 重写:子类中方法方法同名; 重载:当前方法同名 4.1 重写三个要求 1.“==”: 方法名、形参列表相同。...一般编辑器都有自动生成快捷键。 对于方法,一般公有化。 8. 多态 Java引用类型分为“编译类型”,“运行时类型”。编译类型和运行类型不一致,就发生了多态。...发生多态,父和子类拥有同名静态方法和成员变量,则不发生动态绑定,实际调用还是父静态方法和成员变量。 10. 抽象接口 抽象:定义规范,严格限制子类设计,使子类之间更加通用。

    40720

    Super访问父成员

    1 问题 子类成员变量或方法父类同名,可能模糊不清,应该怎么解决?如果子类重写了父某一个方法,我们又该怎么调用父方法?...2 方法 super调用成员属性: 和子类具有相同数据成员,可能会模糊不清。我们可以使用以下代码片段更清楚地理解它。...创建一个父Person,并有属性年龄: 创建一个子类Student,具有和父相同属性: 测试: super调用成员方法和子类都具有相同方法,可以使用 super 关键字访问父方法...s = new Student(); s.display(); } } 3 结语 针对super访问父成员问题,通过实验,子类成员变量或方法父类同名,可以使用 super...在以前学习中,不清楚super用法,本次实验让我们深刻理解到super在访问父成员属性以及方法作用。

    12310

    Super访问父成员

    1 问题 子类成员变量或方法父类同名,可能模糊不清,应该怎么解决?如果子类重写了父某一个方法,我们又该怎么调用父方法?...2 方法 super调用成员属性: 和子类具有相同数据成员,可能会模糊不清。我们可以使用以下代码片段更清楚地理解它。...创建一个父Person,并有属性年龄: 创建一个子类Student,具有和父相同属性: 测试: super调用成员方法和子类都具有相同方法,可以使用 super 关键字访问父方法...s = new Student(); s.display(); } } 3 结语 针对super访问父成员问题,通过实验,子类成员变量或方法父类同名,可以使用 super...在以前学习中,不清楚super用法,本次实验让我们深刻理解到super在访问父成员属性以及方法作用。

    9310

    JAVA学习(2)

    接口只能定义静态常量,抽象可以定义非静态变量。一个实体可以实现多个接口,但只能继承一个抽象。更新声明default 方法:更新接口添加方法,允许旧实现接口而不实现该方法。...可以直接在接口内实现,供没有定义直接使用。若中实现了该方法则覆盖。如果类实现了多个接口且拥有同名 default 方法:两个接口若存在继承关系,调用时优先使用子类方法。...如果没有导入对应 java 文件,或者导入了多个同名 java 文件,在调用 / 接口需要标明路径。...文件,但不包括内部 static 变量和方法import java.net.*; // 导入路径下所有 java 文件,但不包括下属文件夹...import static java.lang.Math.PI; // 导入 java 文件中 static 变量或方法public class Test{

    17520

    Java入门(10)-- 高级特性

    10.1 Java包 10.1.1 名冲突 在Java中每定义好一个,通过Java编译器进行编译之后,都会生成一个扩展名为.class文件,程序规模逐渐扩大,就很容易发生名冲突现象,...10.1.2 完整路径 一个完整名需要包名组合,每个都隶属于一个包,只要保证同一包中名不同,就可以有效地避免同名冲突情况。 同一个包中相互访问,可以不指定报名。...另外,使用import指定了一个包中所有,并不会指定这个包子包中,如果用到这个包中子类,需要再次对子包作单独引用。 使用DOS命令设置编译后文件产生位置: javac -d ....使用import导入静态成员(JDK5.0以上版本) 语法:import static 静态成员 package core; import static java.lang.Math.max;//导入静态成员方法...a2由于被声明为static final形式,在内存中为a2开辟了一个恒定不变区域,再次实例化一个FinalData对象,仍然指向a2这块内存区域,所以a2值保持不变。

    39230

    《Java从入门到失业》第四章:和对象(4.5):包

    前面我们接触过访问修饰符public、private,其实还有一个protected,它们可以用来修饰、属性及方法、属性或方法不用任何访问修饰符修饰时候,我们可以认为有一个default修饰符在修饰它们...有的时候还存在一个问题,2个包下存在同名,比如在JDK中存在java.util.Date和java.sql.Date,如果我们用了如下语句: import java.util.*; import...当然,我们可以静态导入整个静态属性和方法import static java.lang.System.*; 不过说实话,我不太喜欢使用静态导入,有的时候反而引起一些阅读障碍。...4.5.5小结        通过本小结讨论,我们知道: 包可以解决名冲突,一个完整名是包名.名 在一个中访问其他,可以写完整名,也可以用import语句导入;从Java5.0开始还可以导入静态方法和静态属性...包可以隔离访问权限,默认修饰方法、属性可以被同包其他访问。 另外,包主要是让编译器知道如何定位到编译成字节码class文件后,class文件中都是采用完整方式来引用其他

    50730

    赶在 520 之前给您来份 Java 面向对象小抄

    比如下面这段代码中, p 调用 printAll() 方法时候,该方法 this 等同于 p,this p 指向同一个对象实例。...子类对象 使用子类构造方法创建一个子类对象,子类和父成员变量都分配了内存空间,其实通过上述 super 可以看到,父构造方法也被调用了,因此相当父也是被创建了。...在内部类中需要注意以下几点: 如果成员域具有 static 属性,那么必须要有 final 属性,即 final static; 不能含有 static 属性成员方法; 创建该内部类对象实例,需要先创建外部类对象...; 不能具有抽象方法或属性,不能有 static 属性成员变量和方法(假如成员变量具有 static 属性,那么必须要有 final 属性); 匿名实例对象方法,通过它父类型引用变量来访问。...按需类型导入(type-import-on-demand),例如 import java.io.*。按需导入不是导入一个包下所有,而是导入当前需要使用

    63220

    TypeScript 4.3 beta 版本正式发布:新增import语句补全,对模板字符串类型进行改进

    let mySize: number = thing.size; 考虑两个具有同名属性之间关系,TypeScript 将仅使用“读”类型(例如上面的 get 访问器上类型),仅在直接写入属性才考虑...标志 在 JavaScript 中扩展,因为语言设计关系我们可以非常容易地覆盖方法。...override ,TypeScript 将始终确保基中存在一个具有同名方法。...语句,遇到最大痛苦之一就是顺序——特别是导入被编写为: import { func } from "....因此,当你现在开始编写没有路径 import 语句,我们将为你提供可能导入列表。当你提交一个补全后,我们会完成完整导入语句,其中包括你要编写路径。 ? 这项工作需要编辑器专门支持该特性。

    1.1K40

    scala(八) 面向对象

    Scala包 基本语法: package 包名 Scala包三大作用(和Java一样) 1.区分相同名 2.很多时,可以很好管理 3.控制访问范围 包命名 命名规则 只能包含数字...便于管理 便于区分同名包 java中包用法 导包 语法: import 包.*/ import 包.名 位置: 必须处于java源文件中,声明包(package)之后,(class)...import java.util._ } 导包几种方式: 导入包总所有的 import 包名._ import java.util._ 导入包下有一个 import 包名....import java.util.ArrayList 同时导入包中多个指定 import 包名....包对象中,定义非private属性方法在当前包下,任何位置都可以访问。 包权限 语法: private [包名] 代表修饰属性或方法,只能在指定包中使用。

    33110
    领券