猿问

使用接口类型访问类变量

我上课了


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 ?


  }


}

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


慕标5832272
浏览 96回答 4
4回答

饮歌长啸

有没有办法使用接口类型访问类变量?不,这就是界面的全部意义所在。是的,接口只给你行为(方法),而不是“状态”(变量/字段)。这就是Java中的情况。当然,您始终可以使用instanceof来检查实际对象是否属于更具体的类型,然后强制转换为该类型。但如前所述,这违背了使用接口的目的!

手掌心

不,您不能使用接口类型访问类变量,但接口可以定义可以访问该变量的方法。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();    }}

白猪掌柜的

在这个定义中:class MyClass implements Intrfc {    String pickmeUp = "Its Me";}该字段pickmeUp甚至不是Intrfc接口的成员,因此无法仅使用接口来访问它。pickmeUp是具体类的成员 - MyClass.

Qyouu

如果你想通过接口的对象来使用类的方法,你可以这样做://Interface:public interface TestOne {      int a = 5;    void test();        static void testOne(){              System.out.println("Great!!!");    }    default void testTwo(){        System.out.println("Wow!!!");    }}//-------------------//Class implementing it:package SP;public class TestInterfacesImp implements Test1, TestOne{       @Override    public void test() {        System.out.println("I Love java");          }        public void testM() {            System.out.println("I Love java too");        }    public static void main(String[] args) {        TestOne.testOne();              TestOne obj = new TestInterfacesImp();        obj.testTwo();        TestInterfacesImp objImp = new TestInterfacesImp();        objImp.test();        ((TestInterfacesImp) obj).testM(); //Here casting is done we have casted to class type    }}希望这可以帮助...
随时随地看视频慕课网APP

相关分类

Java
我要回答