使用接口类型访问类变量

问题描述 投票:0回答:3

我跟着上课了

class MyClass implements Intrfc {

String pickmeUp = "Its Me";

public static void main(String[] args){

Intrfc ob = new MyClass();
ob.pickmeUp;  ---> How can I access this way ?

  }

}

有没有办法使用Interface类型访问类变量?

java interface
3个回答
3
投票

有没有办法使用Interface类型访问类变量?

不,这是界面的重点。

是的,接口只给你行为(方法),而不是“状态”(变量/字段)。这就是Java中的东西。

当然,你总是可以使用instanceof检查实际对象是否属于某种更具体的类型,然后再转换为该类型。但正如所说,这违背了使用接口的目的!


2
投票

不,您不能使用接口类型访问类变量,但接口可以定义可以访问变量的方法。

interface Intrfc {

    public String getPickmeUp();

}


class MyClass implements Intrfc {

    String pickmeUp = "Its Me";

    public String getPickmeUp(){
        return pickmeUp;
    }

    public static void main(String[] args){

        Intrfc ob = new MyClass();
        ob.getPickmeUp();

    }

}

1
投票

在这个定义中:

class MyClass implements Intrfc {
    String pickmeUp = "Its Me";
}

字段pickmeUp甚至不是Intrfc接口的成员,因此不可能仅使用接口来实现它。 pickmeUp是具体类的成员 - MyClass

© www.soinside.com 2019 - 2024. All rights reserved.