Доступ к переменной класса с использованием типа интерфейса - PullRequest
0 голосов
/ 17 апреля 2019

У меня следующий класс

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 ?

  }

}

Есть ли способ получить доступ к переменной класса, используя тип интерфейса?

Ответы [ 3 ]

3 голосов
/ 17 апреля 2019

Есть ли способ получить доступ к переменной класса, используя тип интерфейса?

Нет.В этом весь смысл интерфейса.

И да, интерфейсы только дают вам поведение (методы), но не "состояние" (переменные / поля).Вот как обстоят дела в Java.

Конечно, вы всегда можете использовать instanceof, чтобы проверить, имеет ли фактический объект какого-то более конкретного типа, чтобы cast к этому типу.Но, как уже говорилось, побеждает цель использования интерфейсов!

2 голосов
/ 17 апреля 2019

Нет, вы не можете получить доступ к переменной класса, используя тип интерфейса, но интерфейс может определить метод, который может получить доступ к переменной.

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 голос
/ 17 апреля 2019

В этом определении:

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

поле pickmeUp даже не является членом интерфейса Intrfc, поэтому нет возможности связаться с ним, используя только интерфейс. pickmeUp является членом конкретного класса - MyClass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...