为了账号安全,请及时绑定邮箱和手机立即绑定

使用接口类型访问类变量

使用接口类型访问类变量

慕标5832272 2022-10-12 10:14:36
我上课了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 ?  }}有没有办法使用接口类型访问类变量?
查看完整描述

4 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

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

不,这就是界面的全部意义所在。

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

当然,您始终可以使用instanceof来检查实际对象是否属于更具体的类型,然后强制转换为该类型。但如前所述,这违背了使用接口的目的!


查看完整回答
反对 回复 2022-10-12
?
手掌心

TA贡献1942条经验 获得超3个赞

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


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();


    }


}


查看完整回答
反对 回复 2022-10-12
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

在这个定义中:


class MyClass implements Intrfc {

    String pickmeUp = "Its Me";

}

该字段pickmeUp甚至不是Intrfc接口的成员,因此无法仅使用接口来访问它。pickmeUp是具体类的成员 - MyClass.


查看完整回答
反对 回复 2022-10-12
?
Qyouu

TA贡献1786条经验 获得超11个赞

如果你想通过接口的对象来使用类的方法,你可以这样做:


//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



    }

}

希望这可以帮助...


查看完整回答
反对 回复 2022-10-12
  • 4 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信