亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用接口類型訪問類變量

使用接口類型訪問類變量

慕標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 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號