java里调用方法 方法名前面的写的是接口名 不是实现类名
时间: 2024-04-13 16:30:51 浏览: 17
抱歉,我理解错了你的问题。在Java中,调用方法时,确实是通过接口名来引用方法,而不是实现类名。这是因为接口定义了方法的契约,而实现类则提供了具体的方法实现。当一个类实现了一个接口时,可以通过接口类型的引用来调用该接口中定义的方法。
例如,假设有一个接口`MyInterface`,其中定义了一个方法`myMethod()`。然后有一个实现类`MyClass`,实现了`MyInterface`接口并提供了`myMethod()`的具体实现。在调用这个方法时,可以使用接口类型的引用来调用:
```java
MyInterface obj = new MyClass();
obj.myMethod();
```
这种方式使得代码更加灵活,可以方便地切换不同的实现类,而不需要修改调用方的代码。同时,这也符合面向对象编程的多态性原则。
相关问题
java怎么让类名.方法名调用
在 Java 中,类名.方法名调用是通过静态方法来实现的。静态方法是属于类的,而不是属于对象的。可以通过类名直接调用静态方法,而不需要创建对象实例。下面是一个简单的示例:
```
public class MyClass {
public static void myMethod() {
System.out.println("Hello World!");
}
}
```
在这个示例中,我们定义了一个静态方法 `myMethod()`。要通过类名调用该方法,可以使用以下代码:
```
MyClass.myMethod();
```
这将调用 `MyClass` 类中的 `myMethod()` 方法,并输出 "Hello World!"。
java中类名::方法名属于哪种调用方式
Java 中的类名::方法名属于方法引用(Method Reference)的语法,它是 Java 8 中新增的一种语法,可以让代码更加简洁易读。方法引用可以用来简化 Lambda 表达式,它的基本语法如下:
```
类名::方法名
```
其中,类名可以是类的名称,也可以是实例的名称。方法名是需要调用的方法的名称。
方法引用的语法有四种形式:
1. 静态方法引用,例如:`Math::max`,表示引用 Math 类的静态方法 max。
2. 实例方法引用,例如:`"hello"::length`,表示引用字符串对象的 length 方法。
3. 特定类的任意对象方法引用,例如:`String::toUpperCase`,表示引用 String 类的任意对象的 toUpperCase 方法。
4. 特定对象的方法引用,例如:`System.out::println`,表示引用 System.out 对象的 println 方法。
需要注意的是,方法引用只能用来代替符合方法签名的 Lambda 表达式,即参数类型、返回类型和方法名都要一致。