Какую функцию я могу вызвать, если создаю объект класса, который унаследован от интерфейса? - PullRequest
0 голосов
/ 11 сентября 2018
public Interface IPerson 
{   
    void SetAge(int age);
}

public class Man : IPerson
{
    public void SetAge(int age) {}
    public int GetAge() {return 20; }
}

IPerson p = new Man();

Какие функции мы можем вызвать с помощью p?Поскольку объект человека создан, он будет вызывать обе функции?

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Вы можете вызвать только метод SetAge(int age), используя ссылку на интерфейс.Другие методы недоступны.

0 голосов
/ 11 сентября 2018

Поскольку объект 'p' имеет тип 'IPerson', вы можете вызывать только те методы, которые относятся к IPerson.Здесь SetAge - единственный метод, определенный внутри Interface IPerson.

0 голосов
/ 11 сентября 2018

Вы можете вызвать только SetAge, так как это единственный метод, определенный в интерфейсе IPerson.Таким образом, если вы объявили переменную, которая может содержать ссылку на объект, реализующий этот интерфейс, то единственный метод, который мы ожидаем там точно в этот момент, это SetAge.

...