为什么在java界面中使用此关键字以及它引用了什么?

时间:2017-03-14 08:03:10

标签: java interface java-8 this keyword

我想我可以在this中使用interface关键字。

因此,如果this关键字代表class中的当前class对象引用,那么它在interface中代表什么?

interface InterfaceOne {

    default void display() {
        this.defaultMethod();
        System.out.println("InterfaceOne method displayed");
    }

    default void defaultMethod() {
        System.out.println("defaultMethod of InterfaceOne called");
    }

}

2 个答案:

答案 0 :(得分:3)

即使在这种情况下,this关键字也用于相同的上下文和含义。

您遗失的一件事是,this关键字代表当前“对象”而非当前“类”。因此,如果您创建此“Interface”的对象(通过在另一个类中实现它),this关键字将代表该特定对象。

例如,如果你有,

class ClassOne implements InterfaceOne{
}

然后,你可以拥有,

InterfaceOne one = new ClassOne();

one.display(); // Here, the "this" keyword in your display method, will refer to the object pointed by "one".

希望这有帮助!

答案 1 :(得分:1)

"这"表示实现接口的新实例

public interface InterfaceTest {
    default void display() {
        this.defaultMethod();
        System.out.println("InterfaceOne method displayed");
    }

    default void defaultMethod() {
        System.out.println("defaultMethod of InterfaceOne called");
    }
}

public class TestImp implements InterfaceTest {

    @Override
    public void defaultMethod() {
        System.out.println("xxxx");
    }
}

public class Test {
    public static void main(String args[]) {
        TestImp imp=new TestImp();
        imp.display();
    }
}

//console print out:
xxxx
InterfaceOne method displayed